找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2973|回复: 3
打印 上一主题 下一主题
收起左侧

STM32单片机控制矩阵键盘程序问题

[复制链接]
跳转到指定楼层
楼主
最近在搞矩阵键盘,用32控制的,在lcd上显示按键的数值,当按键按下时,数值会变,但是在不按的时候,屏幕上的数值自己会变,端口应该没重复,另外用到了ADC1  通道1 PA1,矩阵键盘用的是F  口,函数在下面,大佬们帮忙看一下哪里有错误。                          
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:565305 发表于 2019-7-16 19:55 | 只看该作者
粗略看 keyscan() 感觉有问题,确认没按键时,它返回必为 0 吗?

如果不是它,在不按键时, main 的 while 循环改成

while(1)
{
    GetKeyVal();
    if(flag!=0) LCD_Show(...)
}
然后观察 会不会 LCD 打印东西,如果有打印,那就查是否有内存溢出、数组下标越界、中断意外改写等等可能性了。如果没打印,就逐渐加回代码观察找
回复

使用道具 举报

板凳
ID:123289 发表于 2019-7-17 11:10 | 只看该作者
将你的程序原理、实现的方案写清楚,并用框图展示出来,问题就解决了。
回复

使用道具 举报

地板
ID:585778 发表于 2019-7-17 15:01 | 只看该作者
就你贴出的代码,是无法看到问题的,应该在那个keyscan()中。顺便说一下,看样子你的flag是个全局变量,其实大可不必这么写程序哦,利用返回值就好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表