A0 基于button drive的按键实验

    xiaoxiao2023-10-22  179

    前言

    写过扫描式,中断式按键检测程序;最近在网上看到网友分享的按键程序,可方便创建按键和实现单击,双击和长按,因此试验了一下,中间也遇到了一些问题,并一一解决,在此,记录下实验心得; 同时感谢开源源代码的网友 杰杰.

    实验现象

    需要自己实现部分

    读取按键电平: Read_KEY1_Level uint8_t Read_KEY1_Level(void) { return (uint8_t)((GPIO_PORT_KEY1->IDR) & GPIO_PIN_KEY1); } 定义KEY_ON是高电平触发按下还是低电平按下 #define KEY_ON 1 //高电平代表按键按下 延时程序: 主程序中延时20ms, 这里使用systick设置延时时间.串口初始化: 用于打印实验结果, 当然也可以使用LED等其它外设来查看实验结果;

    问题

    串口打印中文乱码: 把源代码文件用记事本打开,另存为ANSI格式; 编译时很多错误信息: 这里用排除法帮了我的大忙,就是把有错误的地方给屏蔽掉,查看到地是哪个地方有错误, 缩小排错范围;错误提示有些变量未定义: 在编译器选择C99标准

    其它

    功能可以自定义选择, 是否支持长按和单击双击;如果某些项时间感觉不合适,也可适当调整;

    源代码

    源代码

    最新回复(0)