在扫描键盘读键值时我发现了一个现象,在中断读键值命令前设断点读出的键值就是00H开始的,在读键值命令完成后设断点读出的键值就是40H开始的,谁能帮我解释一下这个现象是什么原因导致的?
热门产品 :
CH641: PD及无线充电专用MCU
在扫描键盘读键值时我发现了一个现象,在中断读键值命令前设断点读出的键值就是00H开始的,在读键值命令完成后设断点读出的键值就是40H开始的,谁能帮我解释一下这个现象是什么原因导致的?
你的现象是对的,当中断产生以后,最好立即去读键值,而不是等待一段时间后去读,否则,当按键松开后,键值就会小于0x40.所以你不能在中断前设置断点,那样读出的键值确实小于0x40.
这个是452的内部键值扫描决定的吧?奇怪的是两种测试方式键值刚好相差0X40
是CH452芯片决定的,这个很正常,不要在意松开后到底键值是多少,只要判断值是否是小于0x40就可以了,并且你程序中也不能用0x00来做什么条件,因为手册中也没有告诉您松开后的键值到底是什么,所以您程序也应该用大于0x40而小于0x7F的值来做判断条件。
谢谢您的解答