标题: stc15单片机串口通信的诡异问题 [打印本页]

作者: gongzhu    时间: 2021-10-19 21:59
标题: stc15单片机串口通信的诡异问题
想玩modbus通信,就下载个stc的freemodbus移植的程序,编译后烧写进stc15w4k56s4单片机测试基本正常,长时间通信偶尔会出现无回应的情况。不算大毛病。


但诡异的问题出来了:
新建一个空项目,然后把上面程序的*.C和*.h文件夹拷过来,并添加进新项目,不修改任何程序代码,编译后烧写进stc,运行通信无反应。
在接收函数里面把接收的数据发送出来,发现发送出来的变成了ff





使用Keil uVision3 和 Keil uVision4 都有以上故障现象。

源代码附在下面,供感兴趣的坛友测试。
modbus异常.rar (794.23 KB, 下载次数: 22)


作者: aking991    时间: 2021-10-20 08:20
源码在帖出来才会有人帮你看,你这要让人自己下载是要黑币的,谁会帮你呢
作者: xuyaqi    时间: 2021-10-20 09:19
还多了五个警告 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS    参看:https://blog.csdn.net/SSA_ming/article/details/116298605
作者: AUG    时间: 2021-10-20 09:41
modbus无非就是一个串口通信,串口能通,那么出现问题的就是数据方面了,自己看看程序里面有哪些地方不对的。
作者: xuyaqi    时间: 2021-10-20 11:01
你新工程的 STARTUP.A51 和原工程是不一样的,我移植后发送接收正常。
作者: dzc3458    时间: 2021-10-20 18:30
aking991 发表于 2021-10-20 08:20
源码在帖出来才会有人帮你看,你这要让人自己下载是要黑币的,谁会帮你呢

这个不需要黑币啊
作者: gongzhu    时间: 2021-10-21 21:23
xuyaqi 发表于 2021-10-20 11:01
你新工程的 STARTUP.A51 和原工程是不一样的,我移植后发送接收正常。

感谢你的细心,确实不一样,但是我现在就算把这个覆盖进来编译了还是发送无反应。不过编译后的code大小一样了
作者: gongzhu    时间: 2021-10-27 23:36
可以结贴了,就是xuyaqi说 的 STARTUP.A51 问题。
freemodbus用了一些重入函数,因此需要把这两个地方改一下:


其次是用了3个keil版本,新建项目直接将就STARTUP.A51拷过来编译还是不行,下载的最新版9.60a则正常了。





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