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 但收到的数据不是发送的数据, 但是只使用串口同样代码能够实现正常的数据收发。

请教高手这是什么原因?
展开
 我来答
time云天空
推荐于2018-04-01 · 超过32用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:54.2万
展开全部
485有一个使能端!每次要切换电平才可以正常的收发数据,而串口不用。
就好比一根水管,串口的的DMA数据像水流,485芯片就是水龙头,你必须先打开水阀水才能流出去
意法半导体(中国)投资有限公司
2023-08-25 广告
STM32F107的价格受多方面影响,如品牌、类别、规格、市场等。意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服务。意法半导体单片机产品线拥有业界宽广、极具创新力的32位产品系列 – STM32... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
兵蚁突击
2019-07-22
知道答主
回答量:11
采纳率:0%
帮助的人:3.2万
展开全部

可以参考一下ST的这个文档《管理驱动器使能信号以使用
STM32™的 USART 进行 RS-485 和 IO-Link 通信》 AN3070

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
铁马本心
2019-10-24
知道答主
回答量:1
采纳率:0%
帮助的人:671
展开全部
串口2的发送是DMA1的通道7,接收是DMA1的通道6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
查晓筠0i5
2015-04-17 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4891万
展开全部
关注这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式