烈日灼心 发表于 2018-11-2 10:06 玩STM8 玩的多,用的标准库,但是STM32也没什么难的。 想请教你个问题,,只作为一个初学...

2019-07-21 08:22发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
warship
1楼-- · 2019-07-21 13:13
端口是以组为单位的,以你说的GPIOA来说,
有若干的寄存器来对引脚进行定义和控制操作,这些寄存器有唯一的物理地址(通过基址和结构体指针就可以轻松访问到每个寄存器)
至于具体的引脚,则是通过这些寄存器来配置、控制、读写的。
所谓的#define GPIO_Pin_0                 ((uint16_t)0x0001)
只是为了在代码中做“与”“或”逻辑运算时,在16位或32位寄存器值中方便且易懂地定位到相应的引脚BIT位
辉99
2楼-- · 2019-07-21 18:06
我想问下使STM32 的端口引脚他是怎么映射的?比如#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
我只看到她映射到寄存器了,并没有看到他对端口进行定义映射啊???它只定义了GPIOA,,但是我想问下他A组的引脚怎么定义的啊?????
辉99
3楼-- · 2019-07-21 20:11
 精彩回答 2  元偷偷看……
学习STM32F103
4楼-- · 2019-07-21 22:16
你截图里的GPIOA的地址映射关系应该搞懂了吧,然后你去看看GPIO_Init这个函数,他没组GPIO口对应都有一组寄存器组,具体对应GPIOx->CRL!!你可以看看函数理解下
辉99
5楼-- · 2019-07-21 22:55
学习STM32F103 发表于 2018-11-2 22:21
你截图里的GPIOA的地址映射关系应该搞懂了吧,然后你去看看GPIO_Init这个函数,他没组GPIO口对应都有一组寄 ...

哦哦,貌似知道了,他在寄存器里边已将包含对引[img][/img]脚的设置了
辉99
6楼-- · 2019-07-22 00:33
辉99 发表于 2018-11-2 22:32
哦哦,貌似知道了,他在寄存器里边已将包含对引[/img]脚的设置了

而且,直接用库给封装好了,所以还得看寄存器设置。。。

一周热门 更多>