STM32学习-BitAction

在C语言的嵌入式程序中,使用GPIO_WriteBit函数控制LED,发现当参数j为0x00时,LED状态与预期相反。问题在于BitAction类型的转换。当j不等于0x00时,LED亮,表示BitAction值为1;j为0x00时,LED灭,表示BitAction值为0。直接使用GPIO_WriteBit(GPIOA,GPIO_Pin_2,j)会导致引脚状态跟随j值,而非预期的高电平或低电平。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数:void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)

下面展示一些 内联代码片

 int main(void)
 { 
  	uint8_t j=0x05;
	LED_Init();  //LED阳极接PA2,阴极接GND
 	GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)j);
 }
  • 无论 j 为多少(0x80,0x40,0x20,0x01…)只要 j != 0x00,则LED亮,代表(BitAction)j 为1
  • j = 0x00 时,LED灭,代表(BitAction)j 为0
  • 但是,GPIO_WriteBit(GPIOA,GPIO_Pin_2,j),这样写函数,引脚仍然是 j 非0x00,输出高电平,j = 0x00,输出低电平。不过会有警告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值