OpenEdv-开源电子网

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

例程里的呼吸灯为什么无法用按键关掉,求大神指点

[复制链接]

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
发表于 2020-5-28 15:41:28 | 显示全部楼层 |阅读模式
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "usart.h"
#include "key.h"
//ALIENTEK Mini STM32¿a·¢°å·¶ày′úÂë8
//PWMêä3öêμÑé   
//¼¼êõÖ§3Ö£owww.openedv.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾

int main(void)
{
        u16 t;
        u8 n;
        u8 len;       
        u8 menu=0;
        u16 led0pwmval=0;   
        u8 dir=1;       
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ          
        LED_Init();                          //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
        TIM1_PWM_Init(899,0);//2»·ÖÆμ¡£PWMÆμÂê=72000/(899+1)=80Khz
        KEY_Init();                  //3õê¼»ˉóë°′¼üᬽóμÄó2¼t½ó¿ú
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// éèÖÃÖD¶ÏóÅÏè¼¶·Ö×é2
        uart_init(9600);         //′®¿ú3õê¼»ˉÎa9600
           while(1)
        {
                                if(menu==0)
                                {
                                        LED0=1;
                                        if(USART_RX_STA&0xc000)
                                        menu=1;
                                }
                                if(menu==1)
                                        {                                          
                                                len=USART_RX_STA&0x3fff;//μÃμ½′Ë′νóêÕμ½μÄêy¾Y3¤¶è
                                                printf("\r\nêÕμ½ÏûÏ¢£o\r\n");
                                                for(t=0;t<len;t++)
                                                {
                                                        USART1->DR=USART_RX_BUF[t];
                                                        while((USART1->SR&0X40)==0);//μè′y·¢&#203;í&#189;áê&#248;
                                                }
                                                printf("\r\n\r\n");//2&#229;è&#235;&#187;&#187;DD
                                                USART_RX_STA=0;
                                                for(n=0;n<10;n++)
                                                {
                                                        LED1=!LED1;
                                                        delay_ms(300);
                                                }
                                                menu=2;
                                        }
                                        if(menu==2)
                                        {
                                                while(1)
                                                {
                                                        delay_ms(10);         
                                                        if(dir)led0pwmval++;
                                                        else led0pwmval--;         
                                                        if(led0pwmval>300)dir=0;
                                                        if(led0pwmval==0)dir=1;                                                    
                                                        TIM_SetCompare1(TIM1,led0pwmval);       
                                                        t=KEY_Scan(0);                //μ&#195;μ&#189;&#188;ü&#214;μ
                                                        if(t)
                                                        {
                                                                menu=0;
                                                                LED0=1;
                                                                break ;
                                                        }
                                                }
                                        }
               
        }
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-12-27
在线时间
0 小时
发表于 2020-5-28 15:41:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 15:45:42 | 显示全部楼层
明明就是给它赋值为1,为什么LED0一直亮着
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 15:52:15 | 显示全部楼层
openshot 发表于 2020-5-28 15:41
帮顶!!!!!!

谢谢!!!
回复 支持 反对

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14433
金钱
14433
注册时间
2018-8-3
在线时间
1157 小时
发表于 2020-5-28 15:59:35 | 显示全部楼层
单独初始化控制LED 看看能不能正常关闭
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 18:38:52 | 显示全部楼层
翼行园子 发表于 2020-5-28 15:59
单独初始化控制LED 看看能不能正常关闭

单独初始化可以关闭,只是用例程里的方法把LED0做成呼吸灯后只能让它亮度停止变化,但是关不掉,而且我按下按键时的亮度会一直保持,直到下一个中断,感觉很奇怪。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 18:40:38 | 显示全部楼层
我是想用串口助手发送信息,单片机收到信息后呼吸灯运行,按下按键0后呼吸灯停止
回复 支持 反对

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2020-5-28 18:43:19 | 显示全部楼层
调试一下,你就知道
猪猪熊呢?
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 18:49:45 | 显示全部楼层
323232 发表于 2020-5-28 18:43
调试一下,你就知道

我是新手,能不能说具体一点呢,谢谢
回复 支持 反对

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2020-5-28 18:54:58 | 显示全部楼层
聊赠一枝春 发表于 2020-5-28 18:49
我是新手,能不能说具体一点呢,谢谢

建议学习一下调试、断点这类知识,这是做这行业必备基础
猪猪熊呢?
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 18:57:05 | 显示全部楼层
323232 发表于 2020-5-28 18:54
建议学习一下调试、断点这类知识,这是做这行业必备基础

好的,谢谢
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-26
在线时间
5 小时
 楼主| 发表于 2020-5-28 21:24:22 | 显示全部楼层
江湖救急,原子哥帮帮忙@正点原子,谢谢
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-6-30
在线时间
1 小时
发表于 2020-7-1 12:57:58 | 显示全部楼层
例程里呼吸灯在那,没找到
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 22:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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