STM32使用串口+DMA接收不定长的超大数据,处理方法?

2019-08-17 00:20发布

STM32F103中等容量的芯片,RAM为20K。但是我要接收上位机PC传送来的TFT屏的显示图片数据(约300K字节),然后存储到外部FLAHS中:使用串口USART2+DMA方式接收数据,使用SPI方式存储和读取FLASH中的数据到TFT屏。
由于受芯片RAM的限制,没有那么大的RAM来存储接收的数据,所以针对此情况,有什么方法来处理啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
msq001
1楼-- · 2019-08-17 02:11
 精彩回答 2  元偷偷看……
阳光2260
2楼-- · 2019-08-17 02:47
msq001 发表于 2017-7-14 15:01
分段接啊.........

能详细说一下如何处理吗?由于接收的数据有多种类型,每种类型的数据长度不定,我查了资料,打算使用空闲中断IDLE+DMA接收,在这种方式的情况下,如何分段啊?
msq001
3楼-- · 2019-08-17 08:11
阳光2260 发表于 2017-7-14 15:05
能详细说一下如何处理吗?由于接收的数据有多种类型,每种类型的数据长度不定,我查了资料,打算使用空闲 ...

要和上位机配合,电脑先发一段数据,等待stm32先把这段数据处理后给电脑一个应答信号,电脑接着发下一段
Owen
4楼-- · 2019-08-17 13:20
我觉得你可以试试DMA循环模式。开个几K的缓冲区,UART循环着往里写,SPI循环着往外读。但是这样需要两个标志标识UART和SPI各自的读写位置,防止SPI超过UART,需要一定的CPU介入,而且不知道好不好写,没试过。。。。
阳光2260
5楼-- · 2019-08-17 14:59
msq001 发表于 2017-7-14 15:11
要和上位机配合,电脑先发一段数据,等待stm32先把这段数据处理后给电脑一个应答信号,电脑接着发下一段

这样的话,时间就更慢了
阳光2260
6楼-- · 2019-08-17 18:56
 精彩回答 2  元偷偷看……

一周热门 更多>