OpenEdv-开源电子网

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

程序出问题了,新手求助

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-6-23
在线时间
1 小时
发表于 2016-6-23 23:22:33 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 xuande 于 2016-6-24 08:46 编辑

自己编的程序,运行到按键部分,就跳出死循环,然后现在连例子里面的按键试验也运行不出结果(按键没反应),跑马灯也没有结果。求助该怎么办?

最佳答案

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

如果真是按照你描述的这个现象,那你单步运行或者设断点,找到在哪跳出的死循环,然后再慢慢分析,这种问题还是要自己多调试
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
684
金钱
684
注册时间
2016-1-27
在线时间
184 小时
发表于 2016-6-23 23:22:34 | 显示全部楼层
如果真是按照你描述的这个现象,那你单步运行或者设断点,找到在哪跳出的死循环,然后再慢慢分析,这种问题还是要自己多调试
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-6-23
在线时间
1 小时
 楼主| 发表于 2016-6-24 08:20:29 | 显示全部楼层
[mw_shl_code=applescript,true]int main(void)
{       
//        int i=0;
        u8 key,mode;
        u8 len,i;       
        u16 times=0;
        LED_Init();
        KEY_Init();
        uart_init(9600);
        CAN1_Configuration();
       
       
        LED0=0;
        LED1=0;
       
        printf("USART CONFIG has done\n");
        printf("CAN1 CONFIG has done\n");
                printf("STM32\n");
       
        while(1)         
        {
                        delay(100);
                        printf("STM32\n");
                        LED0=!LED0;
                        LED1=!LED1;
//                        GPIO_SetBits(GPIOA,GPIO_Pin_8);                //LED0       
//                        GPIO_SetBits(GPIOD,GPIO_Pin_2);   //LED1
                delay(100);

                if(getdate()==1)                      //½Ç¶è′«¸DÆ÷¾íλ
                {
                        printf("%.1f        %.1f        %.1f\n",p_g[0]*(180/3.14),p_g[1]*(180/3.14),p_g[2]*(180/3.14));
                       
//                        if(p_g[0]*(180/3.14)>=45)                //3¬1y45¡ãí£Ö1
//                                        {  
//                                                GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//                                          GPIO_ResetBits(GPIOB,GPIO_Pin_6);
//                                    GPIO_ResetBits(GPIOB,GPIO_Pin_7);
//                                        }
                        i=KEY_Scan(0);                //μÃμ½¼üÖμ
                switch(i)
                {                                 
                        case KEY0_PRES:
                                LED1=!LED1;
                                break;
                        case KEY1_PRES:
                                LED1=!LED1;
                                break;
                        case WKUP_PRES:                               
                                LED1=!LED1;
                                break;
                        default:
                                delay_ms(10);       
                }
//                       
//                       
                       
//                        key=KEY_Scan(0);               //2»Ö§3Öᬰ′       
//                if(key==KEY0_PRES)                //Æeá¢
//                        {
//                                mode=0;
//                                GPIO_SetBits(GPIOA,GPIO_Pin_8);                //LED0
//                                GPIO_ResetBits(GPIOD,GPIO_Pin_2);
//                               
//                                GPIO_SetBits(GPIOB,GPIO_Pin_5);
//                                GPIO_SetBits(GPIOB,GPIO_Pin_6);
//                                GPIO_ResetBits(GPIOB,GPIO_Pin_7);
//                               
//                        }else if(key==KEY1_PRES)                       //×øÏÂ
//                        {
//                                mode=0;
//                                GPIO_ResetBits(GPIOA,GPIO_Pin_8);       
//                                GPIO_SetBits(GPIOD,GPIO_Pin_2);                  //LED1-->PD.2
//                               
//                                GPIO_SetBits(GPIOB,GPIO_Pin_5);
//                                GPIO_ResetBits(GPIOB,GPIO_Pin_6);
//                                GPIO_SetBits(GPIOB,GPIO_Pin_7);
//                               
//                        }
//                    else    if(key==WKUP_PRES)               //í£Ö1
//                                {
//                                        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//                                        GPIO_ResetBits(GPIOB,GPIO_Pin_6);
//                                  GPIO_ResetBits(GPIOB,GPIO_Pin_7);
//                                }
//                       
                }                               
        }
        printf("STM32\n");
}[/mw_shl_code]
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-6-23
在线时间
1 小时
 楼主| 发表于 2016-6-24 08:22:43 | 显示全部楼层
main函数就是这样,CAN、角度、串口都能用,就是按键(代码用的例子)那部分一进入就跳出死循环
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2016-6-24 09:36:45 | 显示全部楼层
KEY_Scan(0)在哪里?
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-6-23
在线时间
1 小时
 楼主| 发表于 2016-6-24 16:57:38 | 显示全部楼层
JLink的问题占用了端口,用串口就好了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 18:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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