搜索
查看: 936|回复: 0

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

[复制链接]

该用户从未签到

1

主题

1

帖子

0

蝴蝶豆

新手上路

最后登录
2020-2-21
发表于 2020-2-20 10:05:42 | 显示全部楼层 |阅读模式
使用stm32l431使用串口115200波特率。使能dma发送。主循环不停发送数据。代码如下:
if((send_count != count) && (flag_1 == 0) && (send_count % 10 == 0))
{
   flag_1 = 1;
   HAL_UART_Transmit_DMA(&huart1, (uint8_t *)buf, 22);
  
      count = send_count;
}

flag_1在dma中断清除。代码如下:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
   


    huart->gState = HAL_UART_STATE_READY;
    flag_1 = 0;
}

使能dma接收。

dma中断中再启动一个新的接收dma。

使用串口调试助手不停发送数据。运行一段时间后串口接收会溢出。

串口接收发送 会触发dma中断。想问一下 是否是由于中断处理不过来 导致 接收中断还没有启动一个新的dma时。串口就有数据导致的。
芯片的同时收发的极限速率输多少?
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-26 22:46 , Processed in 1.134697 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表