你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm32l431串口dma同时收发的导致的接收溢出问题

[复制链接]
qqqqqqq1v 发布时间:2020-2-20 10:05
使用stm32l431使用串口115200波特率。使能dma发送。主循环不停发送数据。代码如下:0 [. x8 q6 @* A2 s3 i' o
if((send_count != count) && (flag_1 == 0) && (send_count % 10 == 0))5 Y9 c# i' l" ]% t9 y$ k2 z
{
1 u" t; ~; R  }" Y2 \5 n) X   flag_1 = 1;
1 L% h2 J' }7 l6 U$ y; H   HAL_UART_Transmit_DMA(&huart1, (uint8_t *)buf, 22);' y1 n; w- Y4 L4 m
  / m1 D+ _9 u. A: L; a
      count = send_count;! J, G% z$ l# i% H! T- I
}  @! ]" q) I8 q
& H% N! `' P) q0 m
flag_1在dma中断清除。代码如下:0 J- p. U+ c4 v! T
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
$ K" f% V8 p5 |& L% ~. o{2 ?$ K1 \; h' G. I  K
   
; m; L0 o6 c" ]( Z5 t4 l; ] . N# p% g. K3 X$ Q7 x) Q
4 g% j9 R/ x. f( d' F% d& E
    huart->gState = HAL_UART_STATE_READY;  Y0 s( J' e, m7 @
    flag_1 = 0;! I) j9 E) T" ]) t7 v; z" E
}/ t. R0 v7 }' c0 ^

( J/ E1 Q* C% \: l使能dma接收。! i5 N1 t4 Q6 B" P$ [, I
0 Z. ^. G8 z) Y$ c' u& }' ~8 {0 j
dma中断中再启动一个新的接收dma。
& J3 _0 v( S/ R& q
3 P/ K9 M& g  v8 V, Z; O3 Y1 ?使用串口调试助手不停发送数据。运行一段时间后串口接收会溢出。
8 Y6 w' G  O4 D! d& r8 q: d! Q8 r9 v6 R0 `- J
串口接收发送 会触发dma中断。想问一下 是否是由于中断处理不过来 导致 接收中断还没有启动一个新的dma时。串口就有数据导致的。* N* \& f5 V. m" D1 D2 H+ b
芯片的同时收发的极限速率输多少?% d8 }5 f' m" l0 V- P
赞 收藏 评论0 发布时间:2020-2-20 10:05

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版