OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6025|回复: 10

串口发送字符串代码无法运行

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-21
在线时间
2 小时
发表于 2022-5-4 21:14:43 | 显示全部楼层 |阅读模式
1金钱
求助各位大佬!!字符串发送代码如图,这个程序总是无法运行,我把”USART_GetITStatus(USARTx,USART_FLAG_TC) == 0“
语句改成
”USART_GetITStatus(USARTx,USART_FLAG_TC) == 1“
之后能运行了,但是发到电脑的是乱码,这是怎么回事?
屏幕截图 2022-05-04 211143.png

最佳答案

查看完整内容[请看2#楼]

你用getITstatus函数传参为什么传USART_FLAG_TC,该传USART_IT_TC,乱码可能是串口配置不一致
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1128
金钱
1128
注册时间
2021-6-17
在线时间
206 小时
发表于 2022-5-4 21:14:44 | 显示全部楼层
本帖最后由 ZKX182 于 2022-5-5 11:17 编辑

你用getITstatus函数传参为什么传USART_FLAG_TC,该传USART_IT_TC,乱码可能是串口配置不一致
回复

使用道具 举报

4

主题

456

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
1072
注册时间
2021-4-26
在线时间
352 小时
发表于 2022-5-5 10:44:47 | 显示全部楼层
乱码比较可能是波特率没有设置一致
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3345
金钱
3345
注册时间
2013-5-28
在线时间
468 小时
发表于 2022-5-5 11:07:07 | 显示全部楼层
很少用库函数.
但是,==1肯定是不对的,你之所以能继续运行是while被你屏蔽的原因.
关注下,串口的TC中断是否开启.卡死时关注下,TC标志位是不是被置位吧.
回复

使用道具 举报

28

主题

294

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1790
金钱
1790
注册时间
2018-3-26
在线时间
294 小时
发表于 2022-5-5 11:11:59 | 显示全部楼层
可以去论坛找一个串口的例程,先运行出来,再对比初始化,中断配置等有什么不一样,去修改
茵茵猪头
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2022-5-5 12:42:55 | 显示全部楼层
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2022-5-5 12:43:59 | 显示全部楼层
USARTx到底是串口几呢?串口1就写USART1,串口2就写USART2
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-21
在线时间
2 小时
 楼主| 发表于 2022-5-5 20:35:40 | 显示全部楼层
ZKX182 发表于 2022-5-5 11:15
你用getITstatus函数传参为什么传USART_FLAG_TC,该传USART_IT_TC,乱码可能是串口配置不一致

感谢!解决了
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-21
在线时间
2 小时
 楼主| 发表于 2022-5-5 20:36:52 | 显示全部楼层
zzk111 发表于 2022-5-5 10:44
乱码比较可能是波特率没有设置一致

感谢!!
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-21
在线时间
2 小时
 楼主| 发表于 2022-5-5 20:37:28 | 显示全部楼层
聚东风 发表于 2022-5-5 11:07
很少用库函数.
但是,==1肯定是不对的,你之所以能继续运行是while被你屏蔽的原因.
关注下,串口的TC中断是 ...

噢噢感谢大佬!!
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-4-21
在线时间
2 小时
 楼主| 发表于 2022-5-5 20:37:51 | 显示全部楼层
htao 发表于 2022-5-5 11:11
可以去论坛找一个串口的例程,先运行出来,再对比初始化,中断配置等有什么不一样,去修改

好的好的
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 08:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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