从代码上理解stm32寄存器与库函数的关系

从代码理解寄存器与库函数


学习DMA传输的时候注意到一点:

	DMA_InitStructure.DMA_PeripheralBaseAddr=(u32)(&USART1->DR);//外设地址为串口1的数据寄存器

DMA_InitStructure.DMA_PeripheralBaseAddr我们应该给它DMA传输的外设地址。
OK!现在开始解析


①为什么要u32 ? 这是因为外设地址寄存器CPAR为32位填入有效(如下图)

在这里插入图片描述
②为什么要有&(取址)符号? 因为后面是一个结构体指针,指向结构体内的成员,他的数据类型为成员变量的数据类型!所以我们这里用取址符号来取其地址,不然数据类型就是成员变量的数据类型了。看不懂先看下面的内容,慢慢你就明白了

、、那么DR这个结构体成员的数据类型是什么呢? 它是一个16位的数据类型(如下图)----因此我们需

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值