标题: 为什么这个单片机矩阵按键程序开机默认为0 [打印本页]

作者: 机子单    时间: 2020-3-21 22:00
标题: 为什么这个单片机矩阵按键程序开机默认为0
这个矩阵按键程序为什么默认为0?程序没有哪一条讲有默认为0?

main_页面_1.jpg (252.29 KB, 下载次数: 92)

main_页面_1.jpg

main_页面_2.jpg (137.23 KB, 下载次数: 97)

main_页面_2.jpg

作者: lovexulu    时间: 2020-3-22 17:36
GPIO_KEY=0x0f是说P1口,高4位(P1.7,P1.6,P1.5,P1.4)为0,低4位为1,GPIO_KEY=0xf0时候正好相反,直接对端口寄存器赋值使对应端口置位。
作者: 机子单    时间: 2020-3-22 19:20
lovexulu 发表于 2020-3-22 17:36
GPIO_KEY=0x0f是说P1口,高4位(P1.7,P1.6,P1.5,P1.4)为0,低4位为1,GPIO_KEY=0xf0时候正好相反,直接对 ...

开机初始时,显示屏显0,GPIO_KEY没有检测到按按键,程序中也没有写开机初始时KeyValue=0,所以是什么原因初始时显示屏显0?
作者: eastjack    时间: 2020-3-23 12:49
机子单 发表于 2020-3-22 19:20
开机初始时,显示屏显0,GPIO_KEY没有检测到按按键,程序中也没有写开机初始时KeyValue=0,所以是什么原 ...

keyvalue默认是0
作者: wo4fisher    时间: 2020-3-23 14:27
编译器在编译的时候,会把没有给初始值的变量给默认值0,也就是即便你没有做初始化,它还是会显示0,而0正好是第一个按键的键值。
简单的办法就是在编码表里增加一个元素,给这个元素幅值为你想要没有按键按下时显示的内容的编码,给变量初始化为这个元素的下标。
作者: sduking    时间: 2020-3-23 15:01
部分变量没赋初始值造成
作者: 黎明初至    时间: 2020-3-23 17:46
keyvalue定义时未赋值,默认是0。 如果按其他键后,应该就非0了,除非再次按下0键
作者: lovexulu    时间: 2020-3-23 18:33
机子单 发表于 2020-3-22 19:20
开机初始时,显示屏显0,GPIO_KEY没有检测到按按键,程序中也没有写开机初始时KeyValue=0,所以是什么原 ...

原来你问的这个,编译器会吧没有赋值的变量默认赋值为0,在你程序中如果没有按键按下,则最后面一句给端口赋值时返回数组成员第一个,也就是数组[0],你应该在swich中添加default:选项。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1