OpenEdv-开源电子网

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

串口中断数据无法使用

[复制链接]

25

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-6-3
在线时间
42 小时
发表于 2016-7-22 14:37:11 | 显示全部楼层 |阅读模式
2金钱
u8 code;
void USART1_IRQHandler(void)
{
       
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
        {        
               
    code=USART_ReceiveData(USART1);
    printf("%c",code);
        }
}
在主函数中无法使用,求助大神

最佳答案

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

把code定义为一个数组, u8 code[512]; void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { int i = 0; code=USART_ReceiveData(USART1); i++; //printf("%c",code); } } 每隔一段时间去读code内的值就好了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2016-7-4
在线时间
47 小时
发表于 2016-7-22 14:37:12 | 显示全部楼层

把code定义为一个数组,
u8 code[512];
void USART1_IRQHandler(void)
{
        
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
        {         
                int i = 0;
               code=USART_ReceiveData(USART1);
               i++;
               //printf("%c",code);
        }
}
每隔一段时间去读code内的值就好了
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-7-22 15:11:42 | 显示全部楼层

信息太少。


回复

使用道具 举报

25

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-6-3
在线时间
42 小时
 楼主| 发表于 2016-7-22 15:45:08 | 显示全部楼层

还需要什么代码,我可以发
回复

使用道具 举报

0

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
684
金钱
684
注册时间
2016-1-27
在线时间
184 小时
发表于 2016-7-22 16:46:24 | 显示全部楼层
你把问题描述清楚
回复

使用道具 举报

25

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-6-3
在线时间
42 小时
 楼主| 发表于 2016-7-22 20:23:04 | 显示全部楼层
自己顶一下,我想提取串口中断接收到的数据,然后用在主函数使用,可是在主函数中无法使用
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2016-7-23 09:44:46 | 显示全部楼层
楼主定义一个数组先接收完成所有数据再处理,最好不要再中断处理和printf
回复

使用道具 举报

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
发表于 2016-7-25 08:53:12 | 显示全部楼层
电子之旅 发表于 2016-7-23 09:44
楼主定义一个数组先接收完成所有数据再处理,最好不要再中断处理和printf

对,不要在串口里使用printf
回复

使用道具 举报

9

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2016-7-4
在线时间
47 小时
发表于 2016-7-25 09:42:24 | 显示全部楼层
主函数每次掉code只是一个字符,肯定无法使用啊
回复

使用道具 举报

25

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-6-3
在线时间
42 小时
 楼主| 发表于 2016-7-25 11:46:29 | 显示全部楼层
Randy.zhang 发表于 2016-7-25 09:42
主函数每次掉code只是一个字符,肯定无法使用啊

那应该怎么改呢
回复

使用道具 举报

25

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-6-3
在线时间
42 小时
 楼主| 发表于 2016-7-25 14:06:15 | 显示全部楼层
Randy.zhang 发表于 2016-7-22 14:37
把code定义为一个数组,
u8 code[512];
void USART1_IRQHandler(void)

知道了,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 04:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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