初级会员

- 积分
- 84
- 金钱
- 84
- 注册时间
- 2015-8-27
- 在线时间
- 20 小时
|
1金钱
本帖最后由 tramp 于 2016-5-15 04:33 编辑
用的是F103ZE, SPI1没问题,SPI2总是发生移位,
FirstBit_LSB模式, 收到的数据总是左移1位,例如0x01变成0x02或者0x03.
调试了很多天,本来想放弃了, 今天试着禁掉SRAM, 居然又好了. 连续做了N次实验, 结果如下
实验条件 | SPI1接收结果 | SPI2接收结果 | SPI1/2-RxDMA缓存都在内部RAM中 | 正确 | 正确 | SPI1缓存在FSMC-SRAM中
SPI2缓存在RAM中 | 正确 | 左移1~2位 | SPI1/2缓存都在RAM中
DMA接收的同时程序写FSMC-SRAM | 正确 | 左移N位, 对SRAM写操作越频繁N越大 | SPI1/2缓存都在RAM中
DMA接收的同时程序读FSMC-SRAM | 正确 | 左移N位, 对SRAM读操作越频繁N越大 |
搞不懂为什么会这样, SRAM的初始化和这里一样的http://blog.chinaunix.net/uid-24219701-id-4106380.html
|
|