标题: STM32F103与Arduino进行I2C通信的问题 [打印本页]

作者: CZM129    时间: 2019-3-11 09:53
标题: STM32F103与Arduino进行I2C通信的问题
  原代码是隔一段时间给从机arduino分别发送0x00和0x01,我对他的代码进行了少部分修改,想实现通过stm32上的不同按键来发送,程序烧进后arduino的led没有循环亮了,但是按键也没有反应,试了两台学习机都是一样的问题,特来请教一下。图一为原代码,图二为本人修改的代码。

QQ图片20190311095105.png (81.3 KB, 下载次数: 35)

原代码

原代码

QQ图片20190311095220.png (52.72 KB, 下载次数: 31)

修改后的代码

修改后的代码

作者: CZM129    时间: 2019-3-11 09:54
初学者懂的不多,麻烦各位指导一下,感谢
作者: CZM129    时间: 2019-3-11 09:55
原代码可以实现,应该不存在接线等问题;两台学习机都不能实现,暂时不考虑是按键损坏的原因。
作者: new_hand    时间: 2019-3-11 11:07
一步步分析,程序走那两个 if 了吗,加打印看看
作者: lionmon    时间: 2019-3-11 11:08
按键初始化是否正确?能否调试进入if中,在确定i2c程序是否正确
作者: CZM129    时间: 2019-3-11 12:25
lionmon 发表于 2019-3-11 11:08
按键初始化是否正确?能否调试进入if中,在确定i2c程序是否正确

初始化直接用的例程里面的,应该没有问题。做了一下调试,确实进入不了IF,问题应该是出在keyscan函数中,直接卡在那里了,不清楚原因是什么。
作者: CZM129    时间: 2019-3-11 12:26
new_hand 发表于 2019-3-11 11:07
一步步分析,程序走那两个 if 了吗,加打印看看

在keyscan函数和if前面加双斜杠程序可以跑,我搞不清楚问题在哪
作者: CZM129    时间: 2019-3-11 14:16
CZM129 发表于 2019-3-11 12:25
初始化直接用的例程里面的,应该没有问题。做了一下调试,确实进入不了IF,问题应该是出在keyscan函数中 ...

做了断点调试,把IF条件固定满足,可以进入IF,但是因为keil5不能跟单片机实时通信调试,所以不知道是不是keyscan函数的问题
作者: new_hand    时间: 2019-3-11 14:53
CZM129 发表于 2019-3-11 12:26
在keyscan函数和if前面加双斜杠程序可以跑,我搞不清楚问题在哪

估计按键扫描部分出了问题,发出来看看
作者: CZM129    时间: 2019-3-11 15:32
问题已经解决,虽然不知道具体原因在哪,但是替换了GPIO.h和Key.h等头文件就能用了。谢谢各位的帮助。
作者: swimming80    时间: 2019-3-11 16:24
断点一步步调试,再检查下程序




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