OpenEdv-开源电子网

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

F103C8 运行FreeRTOS OLED显示异常

[复制链接]

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2015-5-3
在线时间
28 小时
发表于 2020-11-6 14:07:49 | 显示全部楼层 |阅读模式
1金钱
本人最近学习FreeRTOS(基于STM32F103C8T6)  OLED显示异常:刚开始OLED显示正常, 6b5d2bd3bf3bf254a85dd1138100a42.jpg
运行几秒钟后开始显示异常,(中间的1字代表其他需要实时显示的内容)

632ab6dc53ccfcf78cac08b6732d0cb.jpg
再运行一会 直接黑屏。
但是用于指示的两个LED灯一直正常运行。


具体程序截图如下
77b42083b617409eff2dcba1be99258.png
0a928d247f204344c25a7b66c02bee5.png
6e81e6283ca14bbe1af8d07456aa3e9.png
f3c3530a9e5e46c9d86eda7dd0c6be3.png
c069783f2bda2f514c728166b2dfe51.png
8076cb64d18431972d8159cf350d0a6.png

这些程序是基于正点原子的动态创建任务模板写的。
修改任务优先级不解决问题。
请各位大神不吝赐教,谢谢!!!

最佳答案

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

1.显示做到一个任务里面,多任务显示调用oled_refresh_gram 可能有问题 2.就想多任务oled_refresh_gram 就把oled_refresh_gram 用信号量互锁住 3.再不行oled_refresh_gram临界点保护
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2165

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10652
金钱
10652
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-11-6 14:07:50 | 显示全部楼层
1.显示做到一个任务里面,多任务显示调用oled_refresh_gram 可能有问题
2.就想多任务oled_refresh_gram 就把oled_refresh_gram 用信号量互锁住
3.再不行oled_refresh_gram临界点保护
回复

使用道具 举报

5

主题

353

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4300
金钱
4300
注册时间
2019-4-30
在线时间
877 小时
发表于 2020-11-6 14:15:49 | 显示全部楼层
在最后显示的时候,临界区保护一下
回复

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2015-5-3
在线时间
28 小时
 楼主| 发表于 2020-11-6 14:40:59 | 显示全部楼层
a1281854907 发表于 2020-11-6 14:15
在最后显示的时候,临界区保护一下

谢谢您的答复,尝试“临界区保护”后还是不行,应该是我程序还是哪里有问题,后来我把显示函数放到main()中,目前正常显示。
回复

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2015-5-3
在线时间
28 小时
 楼主| 发表于 2020-11-6 14:42:57 | 显示全部楼层
nashui_sx 发表于 2020-11-6 14:16
1.显示做到一个任务里面,多任务显示调用oled_refresh_gram 可能有问题
2.就想多任务oled_refresh_gram 就 ...

谢谢您的答复,尝试“临界区保护”后还是不行,“信号量互锁”还不会,正在学习呢。应该是我程序还是哪里有问题,后来我把显示函数放到main()中,目前正常显示。
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14286
金钱
14286
注册时间
2018-8-3
在线时间
1147 小时
发表于 2020-11-6 21:11:10 | 显示全部楼层
参照MINIFLY 四轴飞行器 遥控器的代码 看看 也是C8的驱动OLED
回复

使用道具 举报

51

主题

2165

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10652
金钱
10652
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-11-7 10:45:35 | 显示全部楼层
HA 发表于 2020-11-6 14:42
谢谢您的答复,尝试“临界区保护”后还是不行,“信号量互锁”还不会,正在学习呢。应该是我程序还是哪里 ...

main里面可以,oled_refresh_gram只在一个任务调用,前后加保护肯定可以的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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