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 但收到的数据不是发送的数据, 但是只使用串口同样代码能够实现正常的数据收发。
请教高手这是什么原因? 展开
4个回答
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F207是一款非常优秀的微控制器芯片,它是ST(意法半导体)最新推出的基于90纳米工艺的STM32F2系列芯片之一。STM32F207芯片内置了丰富的外设接口,包括ADC、DAC、UART、SPI、I2C等,可以轻松实现各种复杂的...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
可以参考一下ST的这个文档《管理驱动器使能信号以使用
STM32™的 USART 进行 RS-485 和 IO-Link 通信》 AN3070
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
串口2的发送是DMA1的通道7,接收是DMA1的通道6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询