STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传

功能描述:基于正点原子探索者开发板的串口图传,将十六进制图片通过串口传输到单片机并通过LCD显示(使用FREERTOS)

一、使用STM32cubeMX生成初始化代码

1、时钟配置:使用HSE时钟,并配置HCLK为最大工作时钟STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第1张图片

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第2张图片

2、打开调试线,并选择时基为TIM1

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第3张图片

3、使能FREERTOS,选取CMSIS_V2,内存管理选择HEAP5,其他选项保持默认

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第4张图片

4、配置SRAM选项和时序:

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第5张图片

 5、配置LCD

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第6张图片

 6、设置LCD背景灯开关和一个LED

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第7张图片

7、配置串口,开启DMA选择循环模式,串口的接收引脚选择上拉输入,防止重复进入串口空闲中断,开启USART1全局中断

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第8张图片

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第9张图片

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第10张图片

8、启用JPEG库,STM32F4只能使用软件解码

 STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第11张图片

 9、DMA的初始化应该在串口的初始化之前

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第12张图片

二、生成代码并编辑,这里使用VSCODE+OPENOCD调试,所以生成makefile工程

        1、首先重定向串口,可以使用printf输出到串口,在usart.c中编辑如图,并修改makefile

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第13张图片

 

2、设定FREERTOS堆区域,HEAP5管理方式可以管理不连续的RAM空间,将SRAM交由FREERTOS管理,这样就可以使用更大的RAM空间:

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第14张图片

4、在stm32f4xxx_it.c中添加一些自己的中断处理函数

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第15张图片

3、主要代码编辑在freertos.c,其他代码上传在附件,并附加注释。

4、代码烧录到STM32开发板以后,复位打开串口调试助手,输出操作系统信息

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第16张图片

 5、使用vscode的hexdump插件,采用16进制查看图片信息:

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第17张图片

6、复制到将所有十六进制数据转换为一行,并复制到串口调试助手,点击发送,发送完毕以后,串口会输出图片的信息,并将图片显示在LCD屏幕上

STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第18张图片

 STM32F4+SRAM+FREERTOS+DMA+JPEG串口图传_第19张图片

代码链接:正点原子探索者+FREERTOS+SRAM+JPEG+LCD显示图片-硬件开发文档类资源-CSDN下载

你可能感兴趣的:(stm32,单片机,arm)