OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9172|回复: 19

串口收发

[复制链接]

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
发表于 2016-9-17 17:17:43 | 显示全部楼层 |阅读模式
1金钱
有没有FreeRTOS串口收发的程序呢?

最佳答案

查看完整内容[请看2#楼]

刚用原子的阿波罗F7调好了一个串口收发,用的是HAL库,框架跟原子的不一样,功能是LED1以300ms的频率闪烁,LED2每接收到一个数据包闪烁一下 工程包含了IAR和MDK,可直接下载到阿波罗STM32F7开发板上测试,请叫我雷锋,不谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-17 17:17:44 | 显示全部楼层

刚用原子的阿波罗F7调好了一个串口收发,用的是HAL库,框架跟原子的不一样,功能是LED1以300ms的频率闪烁,LED2每接收到一个数据包闪烁一下
1.PNG

工程包含了IAR和MDK,可直接下载到阿波罗STM32F7开发板上测试,请叫我雷锋,不谢!
Uart.rar (1.07 MB, 下载次数: 1067)
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-9-17 17:41:31 | 显示全部楼层
HAL库的
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-17 19:20:55 | 显示全部楼层
我刚买了F7的板,过几天给你做一个吧
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-9-18 03:21:35 | 显示全部楼层
FreeRTOS 发表于 2016-9-17 19:20
我刚买了F7的板,过几天给你做一个吧

谢谢
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-9-29 15:37:13 | 显示全部楼层
FreeRTOS 发表于 2016-9-25 00:02
刚用原子的阿波罗F7调好了一个串口收发,用的是HAL库,框架跟原子的不一样,功能是LED1以300ms的频率闪烁 ...

哈哈,我都没看见这贴有回复了呢
没用FreeRTOS没用中断啊。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-29 15:46:45 | 显示全部楼层
wangjun110 发表于 2016-9-29 15:37
哈哈,我都没看见这贴有回复了呢
没用FreeRTOS没用中断啊。

串口没使用发送中断,但用了接收中断
原来你要带FreeRTOS的,我目前还没有时间把FreeRTOS移植到F7呢,不过没关系,有空再帮你写个,
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-9-29 16:20:16 | 显示全部楼层
FreeRTOS 发表于 2016-9-29 15:46
串口没使用发送中断,但用了接收中断
原来你要带FreeRTOS的,我目前还没有时间把FreeRTOS移植到F7呢,不 ...

我看了安富菜FreeRTOS串口收发都是用查询,是不是用中断会降低OS效率。或者在OS下尽量不用中断。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-29 16:31:34 | 显示全部楼层
wangjun110 发表于 2016-9-29 16:20
我看了安富菜FreeRTOS串口收发都是用查询,是不是用中断会降低OS效率。或者在OS下尽量不用中断。

你这想法真有趣,从CPU利用率的角度来考虑,串口收发尽量用中断和DMA,查询方式其实就是阻塞方式,严重影响CPU的利用率,也会严重降低OS的效率

打个比方,某个任务使用115200波特率8N1的查询方式发送100字节数据,那么发送时间为8.68ms,那么该任务在这8.68ms以内都一直占用着CPU,
空闲任务无法得到执行,其他优先级较低的任务一样无法获得CPU使用权,你说OS效率高了还是低了?

拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-9-29 16:44:52 | 显示全部楼层
FreeRTOS 发表于 2016-9-29 16:31
你这想法真有趣,从CPU利用率的角度来考虑,串口收发尽量用中断和DMA,查询方式其实就是阻塞方式,严重影 ...

哦。那用中断会不会影响OS的任务切换或是调度的呢?
我觉得用中断的话会影响滴答时间的准确度。呵呵!别笑我啊。不是很懂的。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-9-29 17:21:06 | 显示全部楼层
wangjun110 发表于 2016-9-29 16:44
哦。那用中断会不会影响OS的任务切换或是调度的呢?
我觉得用中断的话会影响滴答时间的准确度。呵呵!别 ...

嘀嗒定时器本身是一个定时器,功能弱的不行,除此外跟我们平常用的TIM2  TIM3没多大区别

由于嘀嗒定时器作为系统时钟,中断优先级一般都是最低的,因此其他高优先级的中断都能抢断它。
所以为了保护好嘀嗒定时器的工作内容不会被打断,操作系统都会有一个进入/退出临界区的接口,目的就是防止某些有危及内核安全的中断打断工作
例如CM0会关闭全局中断以防止其他高优先级的中断抢占,CM3通过一个优先级阈值屏蔽寄存器来防止其他高优先级的中断抢占。。。
至于临界区是什么东西,还请你自己看下源码吧,一般不需要担心系统会有安全性的问题,而且freertos的稳定性比大多数小型嵌入式系统强,放心用吧

拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-9-29 17:43:07 | 显示全部楼层
FreeRTOS 发表于 2016-9-29 17:21
嘀嗒定时器本身是一个定时器,功能弱的不行,除此外跟我们平常用的TIM2  TIM3没多大区别

由于嘀嗒定时 ...

好吧,受教了。
期待你的FreeRTOS中断接收例子。还不会用FreeRTOS的中断。呵呵
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-10-5 14:56:52 | 显示全部楼层
wangjun110 发表于 2016-9-29 17:43
好吧,受教了。
期待你的FreeRTOS中断接收例子。还不会用FreeRTOS的中断。呵呵

移植好了FreeRTOS到F7,如果你用的是F4那么还得自己修改
http://www.openedv.com/thread-85247-1-1.html
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-10-6 11:04:06 | 显示全部楼层
FreeRTOS 发表于 2016-10-5 14:56
移植好了FreeRTOS到F7,如果你用的是F4那么还得自己修改
http://www.openedv.com/thread-85247-1-1.html

受教了,看来HAL库在串口处理上效率不高还搞个回调函数。
我用的是F103,呵呵
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-10-6 11:37:08 | 显示全部楼层
工程里怎么没有延时函数啊,很想知道怎么把原子哥的延时函数加进工程。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-10-6 14:12:50 | 显示全部楼层
wangjun110 发表于 2016-10-6 11:37
工程里怎么没有延时函数啊,很想知道怎么把原子哥的延时函数加进工程。

原子跑UCOS时的延时其实就是系统自带的延时,不信你打开delay_ms()函数看看里面的调用

FreeRTOS的系统延时是vTaskDelay()
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

35

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
546
金钱
546
注册时间
2016-4-20
在线时间
181 小时
 楼主| 发表于 2016-10-6 14:26:35 | 显示全部楼层
FreeRTOS 发表于 2016-10-6 14:12
原子跑UCOS时的延时其实就是系统自带的延时,不信你打开delay_ms()函数看看里面的调用

FreeRTOS的系统 ...

是的。那是ms级延时,us级是用的滴答定时器截取。
但我用vTaskDelay时线程就死锁了。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-10-6 14:30:58 | 显示全部楼层
wangjun110 发表于 2016-10-6 14:26
是的。那是ms级延时,us级是用的滴答定时器截取。
但我用vTaskDelay时线程就死锁了。

调用vTaskDelay怎么会锁死线程呢,我上传的工程就有调用,怎么没见有问题?
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

18

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
377
金钱
377
注册时间
2013-3-1
在线时间
50 小时
发表于 2016-10-7 16:48:10 | 显示全部楼层
f103rct6_freertos_test_led.rar (7.04 MB, 下载次数: 1583)
回复

使用道具 举报

7

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-12-9
在线时间
17 小时
发表于 2016-10-24 14:07:21 | 显示全部楼层
正在看freeRTOS方面东西
https://yixinelectric.taobao.com/
QQ:562463654
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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