stm32W108怎么去读GPIO_PXIN返回引脚的输入值
STM32W108,怎么去读GPIO_PXIN返回引脚的输入值
button3state=1;
if(button3state!=((GPIO_PCIN&PC0_MASK)>>PC1_BIT))//PC1l连接一按键
{
beepload();
button3state=((GPIO_PCIN&PC0_MASK)>>PC1_BIT);
}
此程序貌似是直接读取按键的PCIN的输入值,而不用中断
实验现象应该是按键按下,蜂鸣器响
释放按键,蜂鸣器不响
但是实际却并未成功,就是不明白如何去读取GPIO_PCIN的返回引脚输入值
求大神赐教!!!!!!!!!!!!!!!!!!!!!!!!!!
RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
寄存器没有相关的寄存器说明,可能是程序中自己定义的GPIO端口,这个还是要上下一同看的。RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
GPIO_PCIN是寄存器的0~7位分别对应引脚0~7的输入电平操作方法可以参考:
RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
调用固件库里的函数啊RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
用库函数调用简单,不容易出错RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
你的beepload();直接用,蜂鸣器响么/?RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
首先:不用中断是因为:采用不停的扫描输入脚的方式(就是循环一次,就读一次输入脚的值.因为循环时间短,所以你感觉不到延时.另外有有防抖的好处(实际你还是要加的)所以你可以仿真时在if里加中断点,再按输入键,就可以确认是否检测到输入.
如果没有,你要检查下配置,以及电路.
有果有,那看看是不是蜂鸣部分没弄好.
扫描输入脚值的方法是: ((端口号->IDR) & 脚代码); 端口号如:GPIOA等,IDR是GPIO的输入寄存器,脚代码如:((uint16_t)0x0001)
如果值为0,输入低,值非0,输入1.
RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
你需要检查下你的beep函数,有没有延迟,只有beep输出管脚一直处于高电平,你的蜂鸣器才会响,如果蜂鸣器输出只有一瞬间,你是听不到响的,可能是这种低级错误,排查下
RE:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
stm32W108使用还是要看看手册或使用说明的,你说的失败是什么意思?是进不了if语句中还是听不到蜂鸣器响?设个断点看看回复:stm32W108怎么去读GPIO_PXIN返回引脚的输入值
问题已解决~~谢谢各位好心人:)
页:
[1]