STM32F4与LPC1758的FreeModbus移植

2019-12-17 21:33发布

本帖最后由 linquan315 于 2015-10-25 23:01 编辑

10年了,首先感谢阿莫先生提供了一个自由的技术交流平台。
前几天网站受到DDoS分布式拒绝服务攻击,每一次攻击,我们将会变得更加强大。
在攻击以后,我想着做点什么,在万马齐喑的年代,我们还是要发出自己的声音。几年以来没有发帖了。技术交流是一个很快捷的学习方式,最近在开发的时候参考了不少同仁的资料,今天把最近的工作内容整理一下,反馈给大家,供大家学习参考。
首先感谢sunnydragon的开源精神,品德高尚,值得我学习。

FreeModbus主要是参考sunnydragon的例程(http://www.amobbs.com/forum.php? ... ighlight=freemodbus)来写的,原来的开发平台是STM32F103系列的CPU,我在这里作了扩展,因为阿莫网站上面没有提供UCOS版本的LPC17XX系列的移植以及STM32F4系列的移植,移植的过程比较简略,对于初次移植的人往往不知道从哪里下手,xukai871105(http://www.amobbs.com/forum.php? ... ighlight=freemodbus)的移植代码主要是技术细节层面的,写的很仔细,遗憾是没有工程代码以及源代码(可能回帖太多我没有找到),初学者也是比较头疼的。
我在移植的过程中遇到的最大的问题是不知道从什么地方开始,自己建工程,加源代码,然后才是移植,可是我需要在自己的工程上面添加,怎么添加,这是一个问题,添加完成了以后怎么测试,这也是一个问题。

这里有一个完整的工程,UCOS版本的LPC17XX系列的,初学者可以在首先在这里进行移植,然后再添加到自己的工程中去。

将FreeModbus的文件夹放到工程文件目录下:
15.JPG (23.55 KB, 下载次数: 0) 下载附件 2015-10-25 22:46 上传
目前发现的一个问题是,用作modbus主机的时候,从机的地址偏移有时候不太对,因我现在暂时没有用到,所以没有细细研究了,大家有会的欢迎指教。


这个工程太麻烦了,因为公司的原因,我不好把原先的工程传上来,把公司的或者其他的没有使用到的工程全部删除掉了,目录什么的改了一下,没有想到花了一个小时的时间。
文章不好写啊,呵呵。


工作四年了,谈一下感想吧,我们每天做的其实很多都是简单枯燥的代码堆砌工作,单片机实现的很多功能都是类似的,存在共性的,真正有个性的东西,比较少,你在这个行业有个性的东西,有一些其实在其他的行业用不上。按键、触摸、AI采集、PWM、正交脉冲、PI、SPI、IIC、CAN、ETH、GPS、GPRS,显示模块等等其实都是通用的,PID调节、逻辑状态和其他中间组件等存在相当一部分的共性,只有涉及到行业的具体应用的时候,会存在差异。但是我敢说阿莫电子网站上面的不管是大牛还是虾米,做的工作相当一部分是上述存在共性的第一类和第二类工作,第三类所占用你们的时间其实不多。
所以我感觉国外的开源代码社区其实很不错,上面说的常用的驱动和中间组件,人家都做的很全,大家互相帮助,把时间放在最最需要大量时间精力的个性化的不用行业上面。不过限于中国人的卑鄙的劣根性,所以我们这群人的工作效率低下,大量重复的劳动,产出效率太低。这也不难理解,为啥欧美发达国家,每周工作35小时,很少加班,但是做出世界上最精良的产品,而我们苦逼每周50-60小时,做的产品质量不高。
这里鄙视一下,太监的贴,太监的人。
你以为你的技术很值钱,遗憾的是,在中国,技术不是核心。你怕走光捂着你的小内裤,其实,老板根本不在乎你内裤里面的鸡鸡。

Modbus协议中文版【完整版】.pdf (1.04 MB, 下载次数: 103) 2015-10-25 22:55 上传 点击文件名下载附件



Modbus通讯协议简化.pdf (286.92 KB, 下载次数: 86) 2015-10-25 22:55 上传 点击文件名下载附件

调试软件ModBusPoll.4.3.4 Slave.zip (1.04 MB, 下载次数: 84) 2015-10-25 22:55 上传 点击文件名下载附件

LPC1758-Modbus.rar (606.18 KB, 下载次数: 114) 2015-10-25 22:54 上传 点击文件名下载附件
LPC1758-Modbus.rar










友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
38条回答
linquan315
2019-12-20 03:50
sunnydragon 发表于 2015-10-26 10:11
连ModbusPoll配置文件都有, 楼主确实做的很贴心,辛苦了~

另外,你的测试误码率的方式可以考虑在下述几个 ...

能够得到你的指点,不胜荣幸,我使用的是信号量的方式发送通知,信号量与事件标志组(flag)的操作方式其实是一样的,都是挂起任务,待在串口接收中断中接收到数据以后,发送信号灯使被挂起的任务处于就绪态,两者的UCOS的底层代码的实现方式都是使用事件触发的模式,这里并非使用时间查询的方式,可能你没有看到。

一周热门 更多>