stm32cubeMX学习六、Freertos配置综合实践(移植大彩串口屏程序框架)

一节入门了stm32cubeMX SPI 0.96 OLED的配置,这节我们来学习下如何配置freertos,并驱动大彩串口屏。
本程序编写基于秉火霸道STM32F103ZET6运行环境。
在这里插入图片描述

一、配置时钟

这里默认配置成64MHz
在这里插入图片描述

二、配置Freertos系统和一路调试串口(USART2)

在这里插入图片描述
接下来配置freertos的参数,基本上不用动,满足我当前使用即可,后续需要用再修改.在这里插入图片描述在这里插入图片描述
在这里插入图片描述

三、配置串口调试打印(USART2)

前面已经介绍过串口怎么配置了,这里就不再继续说明。
详细请看:https://blog.csdn.net/morixinguan/article/details/94358706 这篇文章。
在这里插入图片描述

四、准备生成工程

在这里插入图片描述
当准备生成工程的时候出现以下警告:
在这里插入图片描述
其意思就是,当使用了FreeRtos的时候,强烈建议HAL库使用除了Systick以外的时钟源。也就是说当不使用FreeRtos的时候,HAL使用的是systick作为时钟源,现在使用了rtos,不建议hal库和rtos一起使用systick作为时钟源。
参考:https://blog.csdn.net/callmesumo/article/details/89403787
于是我们修改下,解决这个警告:
在这里插入图片描述
接下来就可以生成工程了,出现以下则说明成功,直接点开Open Project即可。
在这里插入图片描述

五、在工程源码中添加重定向打印函数

5.1 添加头文件

在这里插入图片描述

5.2 添加重定向函数

在这里插入图片描述

5.3 测试freertos是否能正常在默认任务里打印hello world

在这里插入图片描述

六、运行结果

在这里插入图片描述
正常打印,Freertos和调试串口现已配置成功。

接下里移植大彩串口屏驱动框架,在移植之前,我们还是在cube上把串口屏的参数配置好。

一、打开stm32CubeMx,配置串口4用于串口屏

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、移植驱动框架、添加发送指令到任务的逻辑

在这里插入图片描述
这是大彩科技提供的串口屏驱动指令和指令处理框架,我们将其添加到自己的项目中。
在这里插入图片描述
添加对应的文件到User目录下
在这里插入图片描述
打开Cube,创建一个长度为100的消息队列
在这里插入图片描述
在main.c中创建LCD任务:
在这里插入图片描述
在程序中,在串口驱动函数中添加一个消息队列发送函数:
首先外部引用一个句柄。
在这里插入图片描述
接下来在queue_find_cmd函数中添加一个消息队列发送函数。
在这里插入图片描述

三、使能LCD串口接收,在LCD任务中添加获取消息队列的逻辑

在这里插入图片描述
如果不添加这一句代码,串口是不开启接收的,接下来我们还在在串口的中断服务函数里添加入队逻辑。
在这里插入图片描述
接下来在main.c的lcd task中添加获取指令的逻辑:
在这里插入图片描述
然后在tft_cmd_process.c中添加log打印:
在这里插入图片描述

四、运行结果

当触摸以下屏幕时,串口会收到以下数据:
在这里插入图片描述
在这里插入图片描述
我们来看看接收到的这个指令代表什么意思:
在这里插入图片描述
完!
工程源码和LCD工程地址
链接:https://pan.baidu.com/s/1zluJQF89dg72g0qYWlBDrg
提取码:9wv3
复制这段内容后打开百度网盘手机App,操作更方便哦
LCD资源详细请看:
http://www.gz-dc.com/

发布了597 篇原创文章 · 获赞 1061 · 访问量 182万+

猜你喜欢

转载自blog.csdn.net/morixinguan/article/details/98532571