STM32为什么不能实现485和DMA的数据收发?
代码因为字数限制简单贴一点串口2加了max485:USART_ITConfig(USART2,USART_IT_IDLE,ENABLE);USART_Cmd(USART2...
代码因为字数限制简单贴一点
串口2加了max485:
USART_ITConfig(USART2, USART_IT_IDLE , ENABLE);
USART_Cmd(USART2, ENABLE);
DMA配置通道4发送,5接收:
DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE);
USART_DMACmd(USART2, USART_DMAReq_Tx, ENABLE);
DMA_Cmd(DMA1_Channel4, ENABLE);
DMA_ITConfig(DMA1_Channel5, DMA_IT_TC, ENABLE);
USART_DMACmd(USART2, USART_DMAReq_Rx, ENABLE);
DMA_Cmd(DMA1_Channel5, ENABLE);
中断函数:配置了USART2_IRQHandler,DMA1_Channel4_IRQHandler,DMA1_Channel5_IRQHandler。
实际测试中通过串口调试助手发送11,22,33,44,55 但收到的数据不是发送的数据, 但是只使用串口同样代码能够实现正常的数据收发。
请教高手这是什么原因? 展开
串口2加了max485:
USART_ITConfig(USART2, USART_IT_IDLE , ENABLE);
USART_Cmd(USART2, ENABLE);
DMA配置通道4发送,5接收:
DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE);
USART_DMACmd(USART2, USART_DMAReq_Tx, ENABLE);
DMA_Cmd(DMA1_Channel4, ENABLE);
DMA_ITConfig(DMA1_Channel5, DMA_IT_TC, ENABLE);
USART_DMACmd(USART2, USART_DMAReq_Rx, ENABLE);
DMA_Cmd(DMA1_Channel5, ENABLE);
中断函数:配置了USART2_IRQHandler,DMA1_Channel4_IRQHandler,DMA1_Channel5_IRQHandler。
实际测试中通过串口调试助手发送11,22,33,44,55 但收到的数据不是发送的数据, 但是只使用串口同样代码能够实现正常的数据收发。
请教高手这是什么原因? 展开
意法半导体(中国)投资有限公司
2023-08-25 广告
2023-08-25 广告
STM32F107的价格受多方面影响,如品牌、类别、规格、市场等。意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服务。意法半导体单片机产品线拥有业界宽广、极具创新力的32位产品系列 – STM32...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
可以参考一下ST的这个文档《管理驱动器使能信号以使用
STM32™的 USART 进行 RS-485 和 IO-Link 通信》 AN3070
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
串口2的发送是DMA1的通道7,接收是DMA1的通道6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询