A. stm32单片机keil程序问题
要想实现你说的操作
搭建好平台
初始化一个定时器用于获取按键值(添加防抖动效果处理)
跑马灯的几个IO初始化配置
数码管显示初始化以及显示程序
蜂鸣器初始化及其程序
主函数
int main(void)
{
//按键定时器初始化
// 跑马灯IO初始化
// 数码管初始化
// 蜂鸣器初始化
uint16_t keyId;
while(1)
{
keyId = GetKeyId(); //GetKeyId函数是你定时器获取的按键值
switch(keyId)
{
key1: // 相应处理事件
.
.
.
break;
.
.
.等等。。。。
}
}
}
B. STM32 4*4矩阵键盘的疑惑 程序中通过扫描方式实现,但不能实现功能。调用库函数时,有个函数不明白设置的
GPIO_Write(GPIOB,(GPIOB->ODR & 0xfff0 | 0xf))
这个地方是说!你先把GPIOB口的输出寄存器低四位清零,让后在把他与0xf相与在把低四位置高。
GPIOB是32位寄存器所以,0xfff0正好是32位,那个0xf是0x0f的意思!
C. stm32程序如下,为什么按下矩阵键盘,led灯不亮呢
这段程序没有错误.如果你就JTAG的话建议使用在线仿真(具体教程请网络吧,不算复杂),在switch(x)处设置断点,当程序执行到那里就暂停了,可以看到x的值是多少,这样有助于你查找错误.
如果没有的话建议买一个,也不贵,五六十就可以买到.很方便的东西