硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1215|回复: 4
收起左侧

[技术讨论] 为什么fifo发送中断要这样写?

[复制链接]

8

主题

19

回帖

43

积分

新手上路

积分
43
发表于 2023-1-6 16:23:45 | 显示全部楼层 |阅读模式
问一下大佬们,一般什么异常会进入到这个分支,此时USART_IT_TXE的状态是咋样的? image.png
回复

使用道具 举报

8

主题

19

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2023-1-6 16:29:12 | 显示全部楼层
还想请教一下,我这样子改可以吗?因为测试发现如果超过txBufSize会陷入while死循环。 image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2023-1-7 01:03:02 | 显示全部楼层
问题1回复:
你用的芯片有TEX发送空和TC发送完成标志吧,有的话,现在有些厂家的芯片没有TEX发送空,不能用这个驱动。

别的没有要注意的了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2023-1-7 01:04:14 | 显示全部楼层
13450334834 发表于 2023-1-6 16:29
还想请教一下,我这样子改可以吗?因为测试发现如果超过txBufSize会陷入while死循环。


问题2回复:

标准库bsp_uart_fifo.c里面串口发送函数UartSend修正完善
https://www.armbbs.cn/forum.php? ... id=95694&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

8

主题

19

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2023-1-9 09:32:06 | 显示全部楼层
eric2013 发表于 2023-1-7 01:03
问题1回复:
你用的芯片有TEX发送空和TC发送完成标志吧,有的话,现在有些厂家的芯片没有TEX发送空,不能 ...

谢谢硬汉哥回复,我用的是STM32F103,主要是不理解为什么要做else去捕获这个异常,同时对处理方式也不太理解,能不能使用下面这代码去替代else里的代码?
[C] 纯文本查看 复制代码
原代码

替换为:
else
				{
						USART_ITConfig(_pUart->uart, USART_IT_TC, DISABLE);//关闭发送结束中断,在发送空中断中开启
						USART_ITConfig(_pUart->uart, USART_IT_TXE, ENABLE);	//开发送空中断,继续发送
				}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 08:26 , Processed in 0.161523 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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