作者
孙冬梅:南京工业大学自动化与电气工程学院博士、副教授,资深RT-Thread开发者
欢迎给RT-Thread投稿,获赠RT-Thread T恤一件。
设计了基于STM32F107设计的数据采集器,实现多种数据(串口、CAN口)采集处理后通过 GPRS模块 无线上传。重点编写了CAN设备驱动; 使用设备方式实现GPRS模块串口数据的上传下载;最后提出了使用线程过程中出现的一些问题。
一、 功能分析
系统功能如图1 所示,不算太复杂。由于下级传感器模块的上报的数据内容很多,导致编写处理程序内容较多。
二、CAN驱动编写
为了模块化地处理传感器的主动上报数据,CAN设备不再用以前的中断处理,而是采用了RTT的设备框架,重新编写了device的驱动。研究RTT里的CAN总线收发设备:
发现只有框架,没有内容。就仿着串口写一个candevice。研究组件使用 中的串口驱动:
这是一个读代码的过程,弄清楚框架后,编写类似于linux中的驱动编写。
以上程序全部写好后,就可以使用设备通用操作函数来操作CAN。在主程序中首先要初始化设备,再注册设备。