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

STM32UART中断收发异常

[复制链接]
lx1990 提问时间:2018-6-22 09:50 /
在使用CUBE上搭了个STM32L151 UART的程序,但是串口在中断发数据时,发出去的全是乱码,不使用中断就是好的,有没有大神知道这是个什么情况?中断没配置好?可是就一句话开中断呀
收藏 评论9 发布时间:2018-6-22 09:50

举报

9个回答
废鱼 回答时间:2018-6-22 10:07:39
楼主用的是用HAL_USART_Transmit_IT发的?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

电子星辰 回答时间:2018-6-22 10:25:45
不使用中断是指用的printf或者直接HAL_USART_Transmit吗?这个可能性很多,楼主能传下代码吗

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-6-22 10:29:40
是否设定的中断发送数据长度与实际数据长度不相同所致?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

zhdzhd 回答时间:2018-6-22 11:30:00
本帖最后由 zhdzhd-174422 于 2018-6-22 12:45 编辑

1:如果使用UART_Receive_IT来接收数据,可以把接收长度设置为1,然后在HAL_UART_RxCpltCallback里实现接收处理即可;
2:使用HAL_UART_Receive来接收,把size设置大一点,超时时间设置合适,即可;


首先用一个正确的程序试一下确保软件本身没有什么问题,

然后再依次检查波特率和VPB时钟频率是否匹配,因为它们不匹配的时候同样会出现乱码。

如果最后还是乱码的话,可能就是程序的问题了,需要检查程序是否有语法以外的错误。


评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

lx1990 回答时间:2018-6-22 11:48:12
安 发表于 2018-6-22 10:07
楼主用的是用HAL_USART_Transmit_IT发的?

是的
lx1990 回答时间:2018-6-22 11:49:59
zhdzhd-174422 发表于 2018-6-22 11:30
1:如果使用UART_Receive_IT来接收数据,可以把接收长度设置为1,然后在HAL_UART_RxCpltCallback里实现接收 ...

主要是中断发送异常,发出去的通过串口助手显示都是乱码
lx1990 回答时间:2018-6-22 11:50:57
wenyangzeng 发表于 2018-6-22 10:29
是否设定的中断发送数据长度与实际数据长度不相同所致?

一样的,发的24位,显示的也是24位,但是数据都不对,用同样的配置在开发板上就是正常的
zhdzhd 回答时间:2018-6-22 12:44:26
lx1990 发表于 2018-6-22 11:49
主要是中断发送异常,发出去的通过串口助手显示都是乱码

首先用一个正确的程序试一下确保软件本身没有什么问题,

然后再依次检查波特率和时钟频率是否匹配,因为它们不匹配的时候同样会出现乱码。

如果最后还是乱码的话,可能就是程序的问题了,需要检查程序是否有语法以外的错误。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

废鱼 回答时间:2018-6-22 14:02:16
楼主最好还是贴出代码来,不然一切都是靠猜测。还有发送的时候用延时输入是多少?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版