OpenEdv-开源电子网

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

只能判断一次更新了快来人啊

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-7-1
在线时间
1 小时
发表于 2015-7-4 16:09:08 | 显示全部楼层 |阅读模式
5金钱
int main(void)
{        char i=0;                         
    Stm32_Clock_Init(9);            //?????±???è??  72M
    uart2_init(36,9600);                 //?®??????????9600  
delay_init(72);
     while(1)
    {
        
        char r[200]={0xCA,0xBE,0xC0,0xC8,0xB5,0xC6,0xC1,0xC1,0xA3,0xAC,0xD4,0xB6,0xB9,0xE2,0xB5,0xC6,0xC1,0xC1};    
        char q[200];
        char dat,w;
        while(!(USART2->SR & (1<<5)));
                        dat=USART2->DR ;
        q=dat;
            i++;
    
    
            if(strcmp(r,q)==0)
            {
                for(w=0;w<=i;w++)
                {
        while(!(USART2->SR & (1<<7)));
                        USART2->DR =q[w];
                }
                i=0;
                w=0;
            }
    }    
}


只能判断一次怎搞啊
还有串口我直接赋值给u2串口只能用数组才能显示出来为什么直接给他个char类型都不行的
不是8个位传送多了的高位省略只取低8为嘛?
新手还望回答

QQ截图20150704155821.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-6-24
在线时间
0 小时
发表于 2015-7-5 12:41:59 | 显示全部楼层
1、 char r[200]={0xCA,0xBE,0xC0,0xC8,0xB5,0xC6,0xC1,0xC1,0xA3,0xAC,0xD4,0xB6,0xB9,0xE2,0xB5,0xC6,0xC1,0xC1};    
char q[200];
char dat,w;
这些变量的声明和赋值不要放在while循环里定义,放在系统时钟初始化前面
char q[200];
char dat,w;
char i=0; 
char r[200]={0xCA,0xBE,0xC0,0xC8,0xB5,0xC6,0xC1,0xC1,0xA3,0xAC,0xD4,0xB6,0xB9,0xE2,0xB5,0xC6,0xC1,0xC1}; 
2、程序总在执行i++,等到再次接收数据时,i的值已经溢出
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-7-1
在线时间
1 小时
 楼主| 发表于 2015-7-6 09:47:08 | 显示全部楼层
回复【2楼】xtayygtv:
---------------------------------
我都接受不到数据他怎么会i++啊
要是他不停止我怎能判断他一次啊
现在的问题是我只能判断他一次
回复

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-6-24
在线时间
0 小时
发表于 2015-7-6 09:52:06 | 显示全部楼层
回复【3楼】poqpoqpoq90:
---------------------------------
不太明白,你说的判断一次是指if语句只执行了一次,还是while(1)里面的while循环?
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-7-6 10:00:25 | 显示全部楼层
去讀一下UART中斷的用法
改用中斷接收的
別這樣瞎搞了
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-7-1
在线时间
1 小时
 楼主| 发表于 2015-7-7 00:27:10 | 显示全部楼层
回复【5楼】Rocks:
---------------------------------
我换成中断都没反应先这样搞起在中断了
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-7-1
在线时间
1 小时
 楼主| 发表于 2015-7-7 00:29:06 | 显示全部楼层
回复【4楼】xtayygtv:
---------------------------------
你比我还差c语言坐等高手吧
能循环不能判断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 22:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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