STM32
直播中

李微波

7年用户 878经验值
私信 关注
[问答]

为什么DMA设置储存器地址与描述的不符?

MYDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)SendBuff,5200);   这里的SendBuff 没有&    但是在不完全手册是这样说的“我们在该寄存器写入&SendBuf 就可以了”,不知道知怎么回事?   另外我在SendBuff 前加上&,程序可以编译通过,下载运行貌似也没错,呵呵!!求解
不好意思,刚刚提问的时候标注的红色部分有点问题!!

回帖(4)

吴南加

2019-10-10 08:05:26
你这个代码哪里抄过来的?
USART1->DR必须在前面加&,否则就是取USART1->DR里面的值了,而不是USART1->DR的地址.
举报

王洋

2019-10-10 08:17:41
MYDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)SendBuff,5200);   这里的SendBuff 没有&    但是在不完全手册是这样说的“我们在该寄存器写入&SendBuf 就可以了”,不知道知怎么回事?   另外我在SendBuff 前加上&,程序可以编译通过,下载运行貌似也没错,呵呵!!求解 
不好意思,刚刚提问的时候标注的红色部分有点问题!!
举报

赵秀英

2019-10-10 08:25:00
SendBuf,这个是一个数组,它的&SendBuf,是这个数组的首地址.而SendBuf,也是数组的首地址.所以这里加和不加区别不大.最好还是加上.
举报

黄淳

2019-10-10 08:43:06
恩,明白了,谢谢!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分