请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
qqqqqqq1v 发布时间:2020-2-20 10:05
使用stm32l431使用串口115200波特率。使能dma发送。主循环不停发送数据。代码如下:
9 {1 ?% |0 J6 w% f) b+ X- Lif((send_count != count) && (flag_1 == 0) && (send_count % 10 == 0))9 V  n* @5 J- A0 d. _( F
{' Q& I2 l6 w% N5 Y( z" N
   flag_1 = 1;) i. R. r6 V6 e7 \( ^7 N
   HAL_UART_Transmit_DMA(&huart1, (uint8_t *)buf, 22);# H! n% U. E' {- w. V" k
  3 f' ^: f( x0 t/ G3 L6 f! K6 E
      count = send_count;
; o7 ~0 R, R' p, F( C1 I: o& Q}% o8 U, ~& T) z5 X) B: `: q6 J
% H1 K- H% m3 }, N) s6 `& U
flag_1在dma中断清除。代码如下:
2 }9 M8 Z0 ]+ h8 n9 d4 b7 Uvoid HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
7 J/ q6 ?+ d3 D  N7 W4 u/ r' H{
. X/ C. U4 u' o' Y, d/ a    & a  d8 b) @7 [& h  N9 R9 G$ @5 q
  E: p7 M/ V8 `) j6 `" g

2 \( D( ?3 R3 I' v) d& E& x    huart->gState = HAL_UART_STATE_READY;: g  `, t7 q9 n. p1 o( }
    flag_1 = 0;
" N2 ?6 y- c$ v. F# [$ G) T" V/ U}$ L, g2 \6 y2 V) K. \  l/ q1 U* ^( A8 L
' j/ O$ `$ t8 F# q; M/ {
使能dma接收。
+ N$ i7 X3 a; C7 M; [4 R/ h. @0 I/ O# z
dma中断中再启动一个新的接收dma。
$ L+ r: T! ^6 n4 }" B* S, Q* h1 H* h7 V. K
使用串口调试助手不停发送数据。运行一段时间后串口接收会溢出。
' N9 u7 x1 k, n( f; d: \/ I- k. E  U
串口接收发送 会触发dma中断。想问一下 是否是由于中断处理不过来 导致 接收中断还没有启动一个新的dma时。串口就有数据导致的。; }8 m& r/ I2 Q+ j
芯片的同时收发的极限速率输多少?4 z$ b  i% m/ n  }3 q+ S
收藏 评论0 发布时间:2020-2-20 10:05

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版