【讨论】stm32的SPI1跑在36MHz时, 会被其它DMA通道干扰而接收错位?

2019-12-15 12:17发布

用的是stm32f103c8t6, 倍频到72MHz,flash等待周期已设为2

spi flash是sst25vf016b,接在spi1上....从中读取16位彩图刷屏...

SPI1 二分频,即工作在36MHz...通过DMA做了双缓冲读取spiflash,并刷新到TFT(ssd1289,240*320)上,模拟时序

表现很好...35ms一屏,即28.5fps,

但是当开启USART的TX的DMA或者ADC的DMA通道后...每屏图像会出现个别彩纹(数据错位)

最后把SPI1降到18MHz(4分频), 一切工作正常了...可是每屏就需要68ms(14.7fps)了...这个速度有点慢了...

问问看谁有解决方法吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
huatuizh
1楼-- · 2019-12-18 12:19
根据经验,多个外设DMA同时用的时候,仅仅2分频外设时钟,很容易出问题。
不仅仅是ST,其他家的也是这样,atmel,nxp
caaron168
2楼-- · 2019-12-18 12:32
MARK
newboymail00
3楼-- · 2019-12-18 16:59
 精彩回答 2  元偷偷看……
shuxmpx123
4楼-- · 2019-12-18 17:50
11
armrunc1
5楼-- · 2019-12-18 18:09
这个有必要标记一下。
frc272727
6楼-- · 2019-12-18 23:06
snoopyzz 发表于 2011-6-24 11:39
原因找到了....根本不是36MHZ是超频了的原因....而是根本不可以设为2分频...

测试在8Mhz HSE, 4倍频到32MH ...

试试,看看是怎么回事

一周热门 更多>