很有趣的问题,主程序时而有用,时而无用

2019-07-21 00:45发布

这个问题困扰我快一周了,现在具体来说一下。做的项目主要是与按键和数码管有关!然后在网上买了两个TM1650模块,每个TM1650只能控制4个数码管,只能扫描三个按键;项目中需要5个数码管,6个按键,所以买了两个!(至于为什么不直接买一个多数码管的模块,我也搞不懂,反正公司这样要求的)

这个模块是通过IIC通信的,由于两个模块完全一样,所以,我用了两个IIC接口,分别与两个模块连接。

主程序中就是:一个死循环里面放了两个按键扫描函数,然后就是判断某个按键按下之后的操作。有一个模块一直很稳定,另一个就不行了,比如在主函数中定义一个变量,然后就没用了,就是按按键,没有任何反应,把这个变量注释掉,又有用了!再比如我有写了几行代码,然后又没用了,然后把写的这几行代码再注释掉,又会有用???另外一个模块是一直可以读到相应的按键,也可以执行相应的操作。所以不知道到底为什么会这样???

在这里我认为有以下几个原因,第一:两个按键扫描函数冲突了???第二:会不会是IIC两个接口分接到两个模块导致的错误???第三:会不会与内存有关???这几个原因也是我凭感觉得来的,希望朋友指点一下!


附件里面有TM1650和程序源码,用的板子是mini
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
HXYDJ
1楼-- · 2019-07-21 03:10
 精彩回答 2  元偷偷看……
shichuang
2楼-- · 2019-07-21 08:30
HXYDJ 发表于 2019-5-28 15:18
两个模块分别单独测试,如果单独测试没问题,就是你程序组合的问题。

单独测试没有问题,组合在一块,只要不定义变量也是没有问题的
zdes33ss
3楼-- · 2019-07-21 08:45
没有做过TM1650模块,不过你的问题,我觉得应该是驱动问题。不同的编译,导致某条命令执行的时序不一样,比如一个版本把功能取消了,另外一个取消的时候功能已经执行完毕了。
所以,最好仔细检查你的驱动,看看有没有主动关闭某些地方导致。

一周热门 更多>