你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
ä¸æåè°å½æ°
读åå°çæ°æ®
举报
waiman-156411 发表于 2017-5-9 09:58 楼主是用什么编程环境(编写软件)配色很cool
any012 发表于 2017-5-9 10:16 eclipse+ac6插件。 然后eclipse市场里有各种主题。
fury-roar 发表于 2017-5-8 17:30 开启dma之前,试试将dma_req信号清除。具体dma_req信号对应的寄存器查看响应手册。 ...
any012 发表于 2017-5-9 10:53 DMA_REQ信号是什么?是说DMA_ISR吗?
感谢帮我发求助帖,补充下问题描述。
接收到正确的数据是: Spi2 DMA recived OK. 3a08, 010a, 0200, 01ff, 03ff, 07ff, 0fff, 5d71, 0000
出错时有时是这样的: Spi2 DMA recived OK. 03a0, 8010, a020, 001f, f03f, f07f, f0ff, f5d7, 1000
这样是最后一个16位数据跑到了第一个位置,其他的依次后移了。算是右移了2个字节。
我用示波器表笔碰触SCL管脚,有时候出现右移1个字节的情况。
但也有时候出现的数据较乱,感觉像是移动了几个bit,而不是整个字节。
PC6上升沿和下降沿都离MOSI数据产生有很大的时间间隔。
SPI2初始化函数:
eclipse+ac6插件。
然后eclipse市场里有各种主题。
eclipse装上AC6插件后,可以打开CUBEMX生成的SW4STM32工程。
eclipse界面挺好的,不过使用上遇到问题的话,就不知道该去哪里求助了,现在用AC6的还比较少。
下载安装AC6也挺慢的,尝鲜是需要付出代价的。
先谢谢你,可以直接用Eclipse打开 STM32 CubeMx生成的工程吗?
DMA_REQ信号是什么?是说DMA_ISR吗?
希望朋友们帮忙分析下原因及解决办法。
不是dma_isr.
你的问题是不是:
dma搬移的第一个数据错误,有效数据从第二个开始?
spi准备好数据,请求dma搬数前,会将信号dma_req置为有效值,然后dma开始数据的搬移。你这种情况是不是dma使能后,此时SPI还未准备好数据但dma_req信号为有效值,导致dma错误地搬移了一个数据。可以在dma使能前,先将dma_req信号置为无效值将其清除。
你在spi相应的寄存器中找找看,有没有关于dma_req的描述。