OpenEdv-开源电子网

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

FreeRTOS创建两个LCD显示任务,当设置同一优先级时,编译不会出错,但运行时LCD会出现错乱线条,这是为什么啊?

[复制链接]

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-7-14
在线时间
15 小时
发表于 2022-2-16 11:35:37 | 显示全部楼层 |阅读模式
5金钱

最佳答案

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

很有可能操作LCD时,2个任务产生竞争啦! 在操作LCD的函数前面【用互斥信号量或者二值信号量保护下】,防止一个任务正在访问LCD设备时,还没有访问结束,另个一个任务又要访问这个LCD设备。 打个比方,公司里的打印机就具有【加锁】保护功能,当A员工正在打印时,如果B员工也要求打印,系统会拒绝B员工的打印,直到A员工打印完毕,才允许B员工打印。 如果不加锁保护的话,打印的内容:嘿嘿,你中有我,我 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2022-2-16 11:35:38 | 显示全部楼层
很有可能操作LCD时,2个任务产生竞争啦!

    在操作LCD的函数前面【用互斥信号量或者二值信号量保护下】,防止一个任务正在访问LCD设备时,还没有访问结束,另个一个任务又要访问这个LCD设备。

     打个比方,公司里的打印机就具有【加锁】保护功能,当A员工正在打印时,如果B员工也要求打印,系统会拒绝B员工的打印,直到A员工打印完毕,才允许B员工打印。
        如果不加锁保护的话,打印的内容:嘿嘿,你中有我,我中有你!
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2034
金钱
2034
注册时间
2021-7-17
在线时间
635 小时
发表于 2022-2-16 14:38:02 | 显示全部楼层
编译不出错并不代表程序可以正常运行达到预期的现象的呢
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-7-14
在线时间
15 小时
 楼主| 发表于 2022-2-16 14:59:27 | 显示全部楼层
ChenRyan 发表于 2022-2-16 14:38
编译不出错并不代表程序可以正常运行达到预期的现象的呢

我按着教程自己写了一次出现这问题还以为写错了,就又去源码上试结果一样,就想问问怎么回事,LCD显示任务不能同一优先级吗?
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2034
金钱
2034
注册时间
2021-7-17
在线时间
635 小时
发表于 2022-2-16 16:40:21 | 显示全部楼层
没有试过,你可以设置子优先级不一样看看
回复

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6681
金钱
6681
注册时间
2017-4-12
在线时间
1254 小时
发表于 2022-2-16 19:45:17 | 显示全部楼层
LCD操作加个锁看看
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2022-2-17 08:59:05 | 显示全部楼层
用LCD时保护资源了没
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-7-14
在线时间
15 小时
 楼主| 发表于 2022-2-17 14:31:39 | 显示全部楼层
jermy_z 发表于 2022-2-17 08:59
用LCD时保护资源了没

没有吧,我用板子例程试的,还是新手,求大佬告知操作!
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-7-14
在线时间
15 小时
 楼主| 发表于 2022-2-17 14:34:03 | 显示全部楼层
245925587 发表于 2022-2-16 19:45
LCD操作加个锁看看

我是新手,求大佬告知操作,如何加锁
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2022-2-17 15:10:46 | 显示全部楼层
菜鸟果果 发表于 2022-2-17 14:31
没有吧,我用板子例程试的,还是新手,求大佬告知操作!

没保护的话,可能抢占使用权了,用互斥信号量或者二值信号量保护下
学无止境
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-7-14
在线时间
15 小时
 楼主| 发表于 2022-2-18 17:40:12 | 显示全部楼层
jermy_z 发表于 2022-2-17 15:10
没保护的话,可能抢占使用权了,用互斥信号量或者二值信号量保护下

感谢大佬,我先去学习一下二值信号量、互斥信号量
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-7-14
在线时间
15 小时
 楼主| 发表于 2022-2-18 17:41:25 | 显示全部楼层
霸王猫 发表于 2022-2-17 16:07
很有可能操作LCD时,2个任务产生竞争啦!

    在操作LCD的函数前面【用互斥信号量或者二值信号量保护下 ...

感谢大佬,我先学习二值信号量和互斥量
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2022-2-19 10:29:39 | 显示全部楼层
使能了协程那个宏么
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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