
1. 在使用STM32F103C8T6的时候,使用的是串口通讯,波特率9600,在读取数据的时候使用的是DMA数据读取加串口空闲中断的方式,使用MAX485接口的芯片,每隔200毫秒发送一次数据,在仿真测试的时候,如果发送一次数据后100毫秒返回一次数据,如果数据长度短了可以,但是如果数据长度长了,就会在DMA读取数据的时候,读取不完全,如果将返回间隔设置为20毫秒或50毫秒就没问题,这其实反应了一个问题,就是在回信息的时候,发送时间太长,可能与下次接收时间重合,因为485是半双工通讯,所以要考虑发送时间、接收时间、发送延时、接收延时,如果冲突了,就会导致接收数据异常。 2. 有没有一个完整的DMA配置的步骤,比如第一步怎么做,第二步怎么做? |
stm32ide怎么正确的导出项目
STM32F105RBT6 2025年 ROSH REACH 报告
STM32CubeMX 使用"FW_F1 V1.8.6"生成FreeRTOS代码缺少"freertos_mpool.h"?
你好,我的setting里面设置都没有问题。但是显示failed download cortexm3
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
stm32f407无法配置定时器2为全部dma
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
串口DMA + 空闲中断收发 ?
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
那是不是这样,每次接收中断来了,就把数据存起来,当产生空闲中断的时候,发送一个信号量通知任务处理接收的数据
我感觉LL 库和HAL 库好坑啊,我以前一直用的标准库,现在突然使用这两个了感觉好麻烦
嗯。我一般是这样做的。我也不习惯用HAL库,还是用标准库,如果实在没有,就自己改HAL库的方式。
现在公司用的HAL库,我也没办法,先这么用吧,能用了再说改的事儿
嗯,可以,我看还有一种韦东山老师讲的循环的方式,就是接收数据后,保存在一个数组里,解析一个字节指针后移一个,直到解析完,循环调用的方式