OpenEdv-开源电子网

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

各位大佬们,可以教一下我吗?新手有个问题没搞懂

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-7-9
在线时间
1 小时
发表于 2020-7-10 15:18:12 | 显示全部楼层 |阅读模式
1金钱
我这样子弄得程序,好像没办法利用按键改变温度,可以帮我看看吗?



#include "led.h"
#include "delay.h"
#include "usart.h"
#include "key.h"
#include "sys.h"
#include "led.h"
#include "beep.h"
#include "lcd.h"
#include "tsensor.h"
#include "adc.h"

short temp;

void key(void)
{
        vu8 key=0;       
        delay_init();                     //延时函数初始化          
        LED_Init();                                  //初始化与LED连接的硬件接口
        BEEP_Init();                 //初始化蜂鸣器端口
        KEY_Init();                 //初始化与按键连接的硬件接口
        LED1=0;                                        //先点亮绿灯
        while(1)
        {
                key=KEY_Scan(0);        //得到键值
          if(key)
                {                                                  
                        switch(key)
                        {                                 
                                case WKUP_PRES:        //控制蜂鸣器
                                        BEEP=!BEEP;
                                        break;
                                case KEY1_PRES:        //温度+1         
                                        temp=temp+1;
                                        break;
                                case KEY0_PRES:        //温度-1
                                        temp=temp-1;
                                        break;
                        }
                }
                else
                        delay_ms(10);
        }         
}

int main(void)
{          
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
        uart_init(115200);                 //串口初始化为115200
        LED_Init();                                  //初始化与LED连接的硬件接口
        BEEP_Init();                 //初始化蜂鸣器端口
  LCD_Init();                                //初始化LCD
        T_Adc_Init();                                  //ADC初始化
  temp=Get_Temprate();        //得到温度值
        void key(void);
        POINT_COLOR=RED;//设置字体为红色
        LCD_ShowString(30,50,200,16,16,"Elite STM32");       
        LCD_ShowString(30,70,200,16,16,"Temperature TEST");       
        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(30,110,200,16,16,"2020/07/10");          
        POINT_COLOR=BLUE;//设置字体为蓝色      
        LCD_ShowString(30,140,200,16,16,"TEMPERATE: 00.00C");
        LED1=0;
        while(1)
        {
                void key(void);
                if(temp<0)
                {
                        temp=-temp;
                        LCD_ShowString(30+10*8,140,16,16,16,"-");        //显示负号
                }
                else if(temp>30)
                        {
                                BEEP=~BEEP;
                        }
                else
                        LCD_ShowString(30+10*8,140,16,16,16," ");        //无符号               
                  LCD_ShowxNum(30+11*8,140,temp/100,2,16,0);                //显示整数部分
                  LCD_ShowxNum(30+14*8,140,temp%100,2,16, 0X80);        //显示小数部分
                  delay_ms(250);
                       
        }
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-7-11 02:20:44 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-30 23:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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