新手学习32求助

2019-07-21 00:04发布

如果我想将某个引脚定义成自己想要的名称怎么办
还有,如果我想拉低或者拉高某个引脚,可以直接赋值0或1吗


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
xkwy
2019-07-21 04:30
你是想实现51里sbit相同的功能吧?

使用位带操作可以。

首先要有一个宏:
[mw_shl_code=c,true]# define BITBAND_REG(Reg,Bit) (*((uint32_t volatile*)(0x42000000u + (32u*((uint32_t)&(Reg) - (uint32_t)0x40000000u)) + (4u*((uint32_t)(Bit))))))[/mw_shl_code]

使用举例:
定义LED为PD7
[mw_shl_code=c,true]# define LED BITBAND_REG(GPIOD->ODR, 7)[/mw_shl_code]

当PD7的引脚初始化为GPIO输出后(51不需要,但STM32必须要有),
只要写LED = 0; 或LED = 1; 即可控制引脚高电平还是低电平了

一周热门 更多>