请问串口DMA在STC32和STC8A8K64D4上还不一样吗?| 已解决
如题,我在STC8A8k64D4上面的串口DMA程序放到STC32上编译出错串口DMA程序@STC32G
精品实例代码: 4串口UART使用DMA收发 @STC32G 实用,易用,高效,稳定 - DMA: 支持4组串口,3组SPI,I2C,TFT-i8080/M6800,ADC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
ModBus_RTU(4组串口任选+DMA传输的主从机)的lib库使用,STC32实现 - DMA: 支持4组串口,3组SPI,I2C,TFT-i8080/M6800,ADC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
深圳国芯人工智能有限公司-实验箱 (stcai.com)
我找了一下,发现stc8a8k的头文件是这样,而stc32g没有这2个定义,所以我加上了,但是编译还是报警。 请问各位大侠,我该如何解决这个问题? 我看手册上面也是直接操作DMA_UR2R_RXA和DMA_UR2R_TXA 本帖最后由 gentleman 于 2024-3-15 14:33 编辑
加上L 试一下
DMZ_UR1R_RXAL
gentleman 发表于 2024-3-15 12:18
加上L 试一下
DMZ_UR1R_RXAL
改了后还是报警,不过是和以前不一样的报警
jwd 发表于 2024-3-15 12:59
改了后还是报警,不过是和以前不一样的报警
缓冲区定义在xdata了吗
gentleman 发表于 2024-3-15 14:21
缓冲区定义在xdata了吗
直接定义的,U8 缓冲区,应该是在edata区 jwd 发表于 2024-3-15 14:26
直接定义的,U8 缓冲区,应该是在edata区
改成xdata
u8 xdata DmaBuffer;
DMA_UR1T_TXAH = (u8)((u16)&DmaBuffer >> 8);
DMA_UR1T_TXAL = (u8)((u16)&DmaBuffer);