点灯:
二极管利用的是两边的电压差点亮,如图外接有3.3v电压,所以只需要引脚给低电平即可驱动。
当外接地时,需要芯片给出高电平驱动,在推挽输出的模式下输入输出都有很强的驱动能里。但一般都是led外接高电压,因为很多芯片都采用高电平弱驱动,低电平强驱动的规则。
1.芯片数据手册
GPIOB挂载在AHB1上
2.中文参考手册:
RCC->APB1ENR |= (1<<1);//即使能GPIOB
2原理图知道LED1使用GPIOB8引脚
因此给PB8配置成推挽输出,低寄存器配置0~7,第八位在高寄存器
0位置1:GPIOA->CRCH|=1<<0
1位清0:GPIOA->CRCH&=~(1<<1)
2位清0:GPIOA->CRCH&=~(1<<2)
3位清0:GPIOA->CRCH&=~(1<<3)
3.中文手册
GPIOB->ODR |= (1<<8);//输出高电平,外接高电压,可以设为默认状态不点亮led
GPIOB->ODR &= ~(1<<8);//输出低电平,点灯
可以写一些fou循环来充当延时.
for(int i=0;i<1000;i++)
for(int i=0;i<500;i++);
按键的初始化配置同理,
操作时监测IDR寄存器对于的值是否有变化,返回不同值即可
标签:位清,学习,GPIOB,寄存器,STM32,GPIOA,驱动,GPIO,CRCH From: https://blog.csdn.net/2201_75620634/article/details/140859625