Fillmore 发表于 2019-3-15 10:47:12

RT-Thread4.0系统串口实现

openedv ID 网络诱惑

看了一下潘多拉开发板的demo复杂的太复杂简单的太简单,没有一个阶梯式的难度。此demo是我测试用的,之前分享过串口hal库1.7版本的空闲中断,到rt_thread系统竟然不能用了。学得他们标准的模板样式,通过env工具裁剪而来,这里是用战舰103开发板做测试,通过env工具裁剪。好了废话不多说,看图说话。

按照他们标准模式创建了一个串口任务,顺便开启了一个单次定时器。

这个是任务里面做串口初始化,当然前提是通过env工具打开串口3的硬件初始化,这里只是软件初始化。

这里和标准写法上做了一点修改,他的标准是通过信号量方法接受,一个字节一个字节收,这里是一次接受。通过回调函数uart3_RX函数计数,他们文档说形参size是得到接受的字符数量。我通过jlinkRTT打印出来是连续继续的,每次接受完成不带清零的。所以稍微处理了一下。接受回调函数里面不能用rt_kprintf函数,会死机的。所以增加了JlinkRTT的打印,它是可以在中断中打印信息的。所以打印出来不会死机。

这里是通过串口3发送串口1打印出来。

这个是用env编译的没有报错。生成的bin 文件可以直接烧录通过stlink或者jlink等工具。

这是编译时的cpu的占用率,使用的是TrafficMonitor工具。如果是mdk5.26或者5.25全编译的话烧CPU厉害,而且往往都差不多接近1分钟。烧cpu太厉害你们懂的。


这个是在linux上编译的win10的子系统,需要自己安装arm-gcc,与env工具编译效果差不多。


这是最后生成bin文件可拿stlink烧录。

工程是和潘多拉的demo工程一样,可以后面直接BSP里面加入自己的项目,为啥这样做呢,主要是考虑后面项目越来越多,新项目我可以直接在里面加,不用在外面重新建立。
方便,话说rt_thread系统确实有点深,全是指针,需要追踪和记录否则会追丢的。好了,继续努力学习去了


Fillmore 发表于 2019-3-15 10:47:46


图片没了,里面有注释

gongxd 发表于 2019-3-15 22:06:45

文字太啰嗦 看不懂

lzy888 发表于 2019-3-26 09:39:43

我就想知道RS485总线的发送接收控制端在哪里?modbus通讯超时接收在哪里加代码?甚至想改个串口波特率,都需要翻腾半天找地方。这么不友好的所谓rtos,能喜欢上的都是极其牛逼的人物

Excellence 发表于 2019-3-26 11:28:43

RTT3.1.X和RTT4.X是打算分两个系统吗?还是最后要合并到一起?

kinsno 发表于 2019-3-26 13:01:58

lzy888 发表于 2019-3-26 09:39
我就想知道RS485总线的发送接收控制端在哪里?modbus通讯超时接收在哪里加代码?甚至想改个串口波特率,都 ...

哈哈,如果你从LINUX端学过的话,看这个RT肯定觉得很眼熟,很欢喜啊。。

lzy888 发表于 2019-3-26 13:18:28

kinsno 发表于 2019-3-26 13:01
哈哈,如果你从LINUX端学过的话,看这个RT肯定觉得很眼熟,很欢喜啊。。

...

我是从stm32cube学过来的。。。。感觉倒退了几十年{:sweat:} {:sweat:} {:sweat:}

kinsno 发表于 2019-3-26 15:27:24

lzy888 发表于 2019-3-26 13:18
我是从stm32cube学过来的。。。。感觉倒退了几十年

好吧,有空了玩玩LINUX,马上就能懂得它这个操作方式,说实在话,在单片机上这样玩,我也是蛋疼的一P,我也是不太喜欢用RT,但我还是去接触它了,不能因为不喜欢就不了解了。。

页: [1]
查看完整版本: RT-Thread4.0系统串口实现