
利用stm32f412 的SPI 的DMA 模式读取外部ADC数据如何提高效率
FW_H7 V1.12.1-HAL库DMA双缓冲配置
STM32H7+SAI+DMA双缓冲配置失败.
stm32Cube Visual studio code 如何设置STM32H7的下载算法
STM32H743 LAN8720 CUBEMX配置lwIP无法ping通,分配pbuf失败
STM32G030K6Tx使用ADC+DMA进行6通道ADC采集,DMA传输错位问题。
STM32F103烧录程序后电流变大
CUBEIDE 调试过程中,如何蒋数组仲的数据拷贝到电脑?
STM32F103CBT6读取单总线温湿度传感器,需要手动重启。
求助:I2S通过DMA搬运后通过USB上传上位机,转为.wav文件后声音嘈杂,音质很差,基本听不出人声
不是特别理解你的意思是即便你只改变UART的TX,也需要重新开启UART的RX接收?
是,将tx引脚配置为模拟输入模式,然后再配置成tx模式,就需要再次打开dma接收,否则串口不能正常接收数据
那请问你的TX引脚有没有绑定某一个DMA通道?
另外其实你没有描述你TX引脚的功能和连接。你的PA2引脚是功能复用的吗?和你UART进行通讯的是什么设备?因为有一类设备的UART是单线半双工的,它的TX和RX实际是一根线分时复用的。有些电路给的参考电路时MCU这一侧将TX和RX通过一个电阻连接在一起和这些设备通讯。类似的设备可以参考TMC2209.
查到原因是串口通讯的另一个芯片发生了复位,rx引脚一直低电平,单片机接收发生帧错误,重新启动dma后才能正常接收,但是帧错误后为什么必须重启dma?
DMA接收数据有严格的限制,除了起始地址必须保证4字节对齐,必须在可以访问的地址范围之外,你设定的发送和接收长度必须满足。我的理解帧错误一定是数据未能正常发送,或者发送了其中一部分。dma和外设直接的协商。(比如uart要求dma将rx的数据保存到那个位置,保存多少数据,每次保存地址要不要加一。是circuit模式还是其他模式。)所以如果你这次的任务失败当然要停止上次的任务,然后安排下一次的任务。