OpenEdv-开源电子网

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

串口数据保存问题

[复制链接]

4

主题

19

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-1-6
在线时间
8 小时
发表于 2016-1-14 19:11:33 | 显示全部楼层 |阅读模式
1金钱
void USART2_IRQHandler(void)
{
         char temp1[5];
         int i=0;
         if(USART_GetITStatus(USART2, USART_IT_RXNE)==SET)
        {         
                USART_ClearITPendingBit(USART2, USART_IT_RXNE);
                temp1[i]=USART_ReceiveData(USART2);
                        /* Loop until the end of transmission */
                USART_SendData(USART2, temp1[i]);
                        while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET)
                        {
                        }
                        i++;
                        if(temp1[2]==0XA1)
                               
                        {LED4(1);}

我想把通过判断串口助手发过去5个字节,然后在程序中写判断这5个字节是不是我发送的那5个  发现发过去的和自己验证的对不上号  是被覆盖了吗  还是我数组写的不对

最佳答案

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

你的i是个局部变量,每次进中断i都会被初始化为0,所以你的值一直覆盖temp1[0]中的值,temp1[2]的值不会变
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

26

主题

201

帖子

0

精华

高级会员

Rank: 4

积分
606
金钱
606
注册时间
2013-12-14
在线时间
125 小时
发表于 2016-1-14 19:11:34 | 显示全部楼层
你的i是个局部变量,每次进中断i都会被初始化为0,所以你的值一直覆盖temp1[0]中的值,temp1[2]的值不会变
回复

使用道具 举报

32

主题

223

帖子

0

精华

高级会员

Rank: 4

积分
695
金钱
695
注册时间
2015-9-23
在线时间
120 小时
发表于 2016-1-14 19:49:51 | 显示全部楼层
数组每次都保存了一个字节
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-1-14 20:13:41 | 显示全部楼层

多处不靠谱的地方。
3L是之一。


回复

使用道具 举报

4

主题

19

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-1-6
在线时间
8 小时
 楼主| 发表于 2016-1-15 08:56:31 | 显示全部楼层
xuande 发表于 2016-1-14 20:13
多处不靠谱的地方。
3L是之一。

嗯 是我理解不对 现在好了 谢谢
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-1-6
在线时间
8 小时
 楼主| 发表于 2016-1-15 08:56:49 | 显示全部楼层
和谐年份 发表于 2016-1-14 19:49
数组每次都保存了一个字节

对 把值给覆盖了  没有传送出来
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-1-6
在线时间
8 小时
 楼主| 发表于 2016-1-15 08:57:23 | 显示全部楼层
lialong1989 发表于 2016-1-14 19:11
你的i是个局部变量,每次进中断i都会被初始化为0,所以你的值一直覆盖temp1[0]中的值,temp1[2]的值不会变

太厉害了 的确是这个问题  我把串口中断理解错误了 感谢
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-1-6
在线时间
8 小时
 楼主| 发表于 2016-1-15 08:57:52 | 显示全部楼层
xuande 发表于 2016-1-14 20:13
多处不靠谱的地方。
3L是之一。

已改  感谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 18:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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