OpenEdv-开源电子网

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

USART1串口无法进入中断,点击串口助手的发送,串口无显示,但是led灯有闪烁。

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-11-23
在线时间
2 小时
发表于 2015-11-29 12:36:25 | 显示全部楼层 |阅读模式
5金钱
void USART1_IRQHandler(void)                 //串口1中断服务程序
{
    u8   RX_status;
    GPIO_SetBits(GPIOC, GPIO_Pin_2);
    delay_ms(200);  //发送接收led闪烁
    RX_status = USART_GetFlagStatus(USART1, USART_FLAG_RXNE);  //接收使能
    if(RX_status == SET) 
    {

            USART_SendData(USART1 , USART_ReceiveData(USART1)); //接收并发送
            while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //发送结束
            GPIO_ResetBits(GPIOC, GPIO_Pin_2);
            delay_ms(200);
  }






最佳答案

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

unsigned char TxBuf[50] = "\r\n lease input any word:\r\n "; for( i = 0; TxBuf != '\0'; i++) { USART_SendData(USART1 , TxBuf3); while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET); } 为了试验串口,然后在main函数加上上边的语句,串口显示乱码。但是又调试了几次后发现,串口可以发送单个字符并 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-11-23
在线时间
2 小时
 楼主| 发表于 2015-11-29 12:36:26 | 显示全部楼层
unsigned char TxBuf[50] = "\r\n lease input any word:\r\n ";


for( i = 0; TxBuf != '\0'; i++) {
USART_SendData(USART1 , TxBuf3);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
}
为了试验串口,然后在main函数加上上边的语句,串口显示乱码。但是又调试了几次后发现,串口可以发送单个字符并接收,证明可以进入串口中断。但是显示乱码的原因未找到,最后只能参考原子哥的usart.c里的USART_RX_STA寄存器配置,才解决了乱码问题。谢谢楼上的提醒,以后不会再把延时函数加入中断了。
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-29 14:27:21 | 显示全部楼层
试下把发送和接收分开处理
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

3

主题

2177

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3321
金钱
3321
注册时间
2013-7-19
在线时间
195 小时
发表于 2015-11-29 14:48:20 | 显示全部楼层
哪能把延时放到中断处理里面啊……把LED闪烁和延时部分去掉再试试看
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-11-29 17:19:32 | 显示全部楼层
把串口发送放到main函数去看看。。。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-11-29 18:25:43 | 显示全部楼层
中断函数尽量短,尽量不要有延时
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2021-7-18
在线时间
37 小时
发表于 2023-3-30 15:32:37 | 显示全部楼层
dongchen1990 发表于 2015-11-29 12:36
unsigned char TxBuf[50] = "\r\n&nbsplease input any word:\r\n&n ...

你好请问你USART_RX_STA是怎么配置的,我的始终没有办法置1
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 12:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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