jiaojian 发表于 2018-4-16 14:04

stm32f103 如何清除SPI->DR的数据

stm32 SPI双机器通讯 如何清除SPI-DR 寄存器的值呢 因为发现如果SCK受到干扰后 则数据都是错的。即使SPI主站 间隔一段时间发送,从站我写了很多句譬如SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Tx, DISABLE);然后再SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Tx, ENABLE); 。主站多一段时间发的数据 从站由于之前收到的SCK受到干扰 比如少接收2bit 则一直会错位接收到 乱码。不清除从站的SPI-DR解决不了。谢谢

airwill 发表于 2018-4-17 07:49

这倒是个比较有价值的问题, 往往手册不大给出这个问题的解决办法
CS 能否终止上帧接收的呢,否则要用初始化的办法了吧
持续关注

jimsboy 发表于 2018-4-18 15:07

这个我感觉还是从硬件保证比较有效。
SPI不是那种板间通信信号。在硬件设计合理的条件下,SCK不会丢的。
页: [1]
查看完整版本: stm32f103 如何清除SPI->DR的数据