aple0807
获得 301 次赞
帮助过677人
最近看到竟然有人在咸鱼上拿freemodbus卖钱,真是无语。freemodbus是个实实在在的开源免费软件,拿这个卖银子貌似不大厚道。这两天在智嵌开发板上移植一份与大家共同学习。 源代码可以在网上下载,我用的版本是1.5。 移植程序主要修改以下几个文件:
首先感谢论坛和智嵌物联提供评估板试用机会,板子资源很丰富,仪表设备常用的通信rs485,can,usb,eth都有了。 下面先点一个呼吸灯,板载5个可控制的led,四个并列的可以做个流水式呼吸灯。 先用cube生成工程,然后添加led管理任务,代码如下:
评估板,板载的stlink附带了一个虚拟串口,连接在芯片的usart2,可以很方面连接电脑显示调试信息。 初始化代码可以用cubemx生成,下面附上收发程序。
本帖最后由 apleilx 于 2018-2-25 12:46 编辑 拿到板子有一段时间了,先了解下mcu方式开发的接口,给每个外设写下驱动,顺便移植rtx5测试下,第一次使用这个os,不过它有一个cmsis-os封装,用起来就简单多了。 下面附上stm32程序,点亮三色led,,遮挡物靠近红外时电机旋转。
本帖最后由 apleilx 于 2017-12-14 17:16 编辑 关于modbus的使用,单片机中最常用的是从机模式用来连接上位机,不过对于429这种芯片来说,本身就可以作为上位机来控制仪表等设备,如果同时需要连接电脑的话就需要主机和从机同时使用。 用一组协议来处理多通道modbus数据最好的办法就是采用类似于基于对象的处理办法,在c语言中可以采用的结构体和指针来实现。 本试验用之前的单通道mosbus程序改写,程序建立的modbus对象结构如下: 对象内容主要包括 数据收发解析状态机,从机功能函数指针,主机命令缓冲池处理状态机,主机命令缓冲区四个部分。
刚开始接触gui,这几天吧emwin的底层接口理了一遍终于把那个demo调通了。 先到st官网下载stemwin软件包,找到编译器对应版本的库文件添加到工程,我用的iar,ucosiii操作系统,就选了stemwin532_cm4_os_iar.a。 芯片的驱动没必要自己写了,直接移植原子例程里的程序就可以,看看怎么工作就行。我的2.8寸屏,触摸芯片xpl2046。 主要需要修改的文件都在emwin/config目录下: 原子的程序在iar下编译有许多警告,看了看基本上都是隐形有损数据类型转换,不是强迫症的话可以不用管它。stemwin库应该是早期iar编译的,在8.20里面有警告wchar_t的尺寸,stewin库里的是16bits,而外部的32bits,不过没有通过指针对库内外进行这种类型的数据交换,这个警告也没什么影响,程序运行正常。 下面看看demo效果: