![bcdde42b3c1824de3f985da34f03144c.png](https://img-blog.csdnimg.cn/img_convert/bcdde42b3c1824de3f985da34f03144c.png)
前言
大概半个月之前捣鼓了下利用STM32实现实时曲线显示,中间又做了一点小改进和扩充,在这里更新一下:
- 利用DMA进行缓冲区到LCD GRAM的像素数据搬运
- 效果更好的曲线绘制策略
代码可以在这里找到:<写得比较乱,望谅解( ´・ω・)ノ(._.`)
curve_chart.cgithub.com使用DMA进行像素搬运
利用STM32 DMA的M2M(Memory to Memory)模式,实现像素数据从外置SRAM的双缓冲区到LCD GRAM的搬移。只需要把数据源(SRAM)和终点(LCD-GRAM)的虚拟地址交给DMA,DMA控制器即可自动通知FSMC控制两个外设进行数据交换。
DMA初始化:
DMA_HandleTypeDef hdma_m2m;
/* Configure DMA request hdma_m2m on DMA2_Stream0 */
hdma_m2m.Instance = DMA2_Stream0;
hdma_m2m.Init.Channel = DMA_CHANNEL_0;
hdma_m2m.Init.Direction = DMA_MEMORY_TO_ME