来看一下嘛,stm32的spi通信方式的spi1-DR寄存器不能赋值!!!!

初接触stm32的spi,在配置好spi1之后。尝试给spi1-DR赋了一个值。但在keil mdk的debug里面选择单步运行。1发现spi1-DR一直是0x0000..那这个值究竟赋进去没有啊?资料上说数据是装到spi1-DR里再送去移位寄存器的。还有另外一个问题,2 spi主从通信的时候,如果从机的数据没有准备好,主机就开始传输(意思是我没有给从机MCU的DR赋值),那在通信完成时,主机收到来自从机的返回数据将是一个什么值?
这里有两个问题的。麻烦会的朋友帮忙回答一下。感谢!!!

第1个回答  2015-06-09
能不能实际测试一下?本回答被提问者采纳

STM32单片机读取寄存器后不能赋值给变量
有两个可能,一个是仿真器的二次读取造成状态变化,比如spi发送空标志读一下就会清空 还有就是没有意义的赋值语句被优化掉了,加volatile试试

stm32的spi通信问题:程序在前面都没问题,但到了发送接收的while里面就...
首先说明一点:你这个里面都没有使能时钟,怎么可能会正常运行呢。还有一点:STM32先等待已发送的数据是否发送完成,如果没有发送完成,并且进入循环的话,说明数据发送错误,所以你这个地方顺序也有问题。应该是:while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); \/\/检查指定的SPI标...

请教STM32的SPI通信中的CRC校验问题 SPI
你这个是以查询的方式接收数据。 这个函数是坚持SPI_DR是否为空,新状态为置位 spi配置的时候,注意几点: 1:主从模式一致。从模式服从主模式,不要主SPI是一种配置,从模式是另外一个配置; 2:主机启动时钟前,从机应该已经开机了,使能了 3 ...

STM32中SPI的通信速率如何设置
如果用的固件库,那就是更改SPI_InitStructure.SPI_BaudRatePrescaler参数,赋值在stm32f10x_spi.h中有定义,是APB2或者APB1总线频率的1\/2~1\/256.

关于STM32的SPI问题,哪位大神能给予指导,小妹非常感谢!
SPI边发边收,就算没有从机也会收到数据,这个数据与发送期间接收脚的电平有关。所以收到0xFF不能判定是从机发的。第二个问题不懂。。。是不是TxData本来就是0?

stm32的spi1,spi2,spi3有什么不同
基本上是没有不同,一般来讲都支持最基本的SPI功能,标号越靠前支持的扩展功能可能就多一些,这不是一定的,对于基本的应用,这三个是没有区别的,就是芯片给提供了三个SPI接口起不同的名字用以区分。

STM32 的SPI总线问题,求助大侠!!
1. 为了能够及时响应VS1003的数据要求,需要先将数据缓冲到STM32的RAM中,即先从Flash读取一部分MP3数据到RAM中。然后写满VS1003的512字节缓冲,开始播放。2. VS1003在有缓冲空闲时会产生中断请求,此时缓冲区中至少还能支撑30微秒。如果此时SPI空闲,操作SPI,直接从RAM将数据写入VS1003 否则,等待SPI...

STM32单片机SPI问题
一旦被使能(SSOE位),NSS引脚也可以作为输出引脚,并在SPI处于主模式时拉低;此时,所有的SPI设备,如果它们的NSS引脚连接到主设备的NSS引脚,则会检测到低电平,如果它们被设置为NSS硬件模式,就会自动进入从设备状态。当配置为主设备、NSS配置为输入引脚(MSTR=1,SSOE=0)时,如果NSS被拉低,则这个SPI...

求教stm32四种spi方式的区别
以被设置的spi作为第一人称,谁爱主谁主。SPI_Direction_2Lines_FullDuplex:我能给你,也能接受你的。SPI_Direction_2Lines_RxOnly :只能你给我(那2lines体现在哪里?)SPI_Direction_1Line_Rx:只能你给我(和上面有什么区别?)SPI_Direction_1Line_Tx:只能我给你 ...

stm32如何实现多台SPI通信
1)分频值:SPI的频率最高为18M,SPI1是在频率为72M的APB2上,而SPI2是在频率为36M的APB1上。如果芯片时钟频率为72M,那么SPI1的分频值为4,SPI2的分频值为2.2)开DMA顺序:我在网上看到有人说要先开从机发送、再开主机发送、再开从机接收、最后开主机接收。我不知道为什么要这么开,而且这种...

相似回答