搜索
bottom↓
回复: 8

请教一下哪位在28035上做过freemodbus移植?运行时不进中断

[复制链接]
(16627493)

出0入0汤圆

发表于 2020-4-15 20:26:09 | 显示全部楼层 |阅读模式
本帖最后由 jiang_520_smart 于 2020-4-15 20:25 编辑

从freemodbus网站下载的v1.6版源码,参照596142041大神在F28335上移植的代码进行了修改。根据freemodbus应用说明,在指定的源文件处增加串口和定时器的初始化、中断等处理。
修改完成后,在主函数中初始化modbus,并使能,在死循环中调用相应的函数。用电脑串口发送查询帧,不进入接收中断,导致modbus认为总线始终是空闲的。无法工作。
在主函数中屏蔽初始化和使能modbus的代码,直接初始化定时器、开收发中断、开定时器中断,接收中断中读取接收到的字节,再使能发送并将接收到的字节发出,在发送完成中断中重新使能接收,能够正常收发。定时器中断打开,也能正常进入。
目前分析原因可能是内存划分不合理,造成数据调用时出错。
cmd文件是在产品上用过的。对.map文件不太懂,查找不到原因。因此请教,请有经验的兄弟指点。
附件是在CCSv9上创建的工程文件夹。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(16627020)

出0入0汤圆

发表于 2020-4-15 20:34:02 | 显示全部楼层
你不用Modbus,串口中断能进入吗?估计是你的中断配置有问题。
(16626919)

出0入0汤圆

 楼主| 发表于 2020-4-15 20:35:43 | 显示全部楼层
CCS 发表于 2020-4-15 20:34
你不用Modbus,串口中断能进入吗?估计是你的中断配置有问题。

能进入,收发中断都能进。
(16626559)

出0入0汤圆

发表于 2020-4-15 20:41:43 | 显示全部楼层
看看你的程序调用xMBPortSerialInit是不是正确,这个函数里面对串口的配置是不是正确的
(16580236)

出0入0汤圆

 楼主| 发表于 2020-4-16 09:33:46 | 显示全部楼层
CCS 发表于 2020-4-15 20:41
看看你的程序调用xMBPortSerialInit是不是正确,这个函数里面对串口的配置是不是正确的 ...

我直接在主函数里调用这个串口初始化函数,是正确的。
实际使用modbus的时候调用eMBInit这个函数,这个函数里含有串口初始化的调用。
(16576947)

出0入0汤圆

发表于 2020-4-16 10:28:35 | 显示全部楼层
你确定接收中断一次都进不了吗?还是modbus没返回,认为没进接收中断?
(16408885)

出0入0汤圆

 楼主| 发表于 2020-4-18 09:09:37 | 显示全部楼层
CCS 发表于 2020-4-16 10:28
你确定接收中断一次都进不了吗?还是modbus没返回,认为没进接收中断?

中断进不了,modbus还没开始工作。怎么也得从进接收中断开始吧?
(16351609)

出0入0汤圆

发表于 2020-4-19 01:04:13 | 显示全部楼层
不知道你在初始化的时候开启了中断了没,之前我是在28335的平台上面进行验证的,之后还在STM32F4的平台上面验证过
(16228344)

出0入0汤圆

 楼主| 发表于 2020-4-20 11:18:38 | 显示全部楼层
596142041 发表于 2020-4-19 01:04
不知道你在初始化的时候开启了中断了没,之前我是在28335的平台上面进行验证的,之后还在STM32F4的平台上面验 ...

原创来了 中断配置是没问题的。我把初始化子函数自己调出来,收发中断和定时器中断都能进入。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-10-25 07:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表