OpenEdv-开源电子网

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

温度上下限设置,按键没有反应

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2024-6-24
在线时间
5 小时
发表于 2024-7-3 15:13:44 | 显示全部楼层 |阅读模式
在写一个温度报警系统时,发现按键没有反应,功能库的key功能就是用的官网的,请帮小弟看看是什么原因
按键设置温度上下限代码段如下:
int main(void)
{
    u8 t = 0;
               
    u8 shuzu[20];
                u8 keyvalue=0;
                u8 gaibianshui=0;
       
    short temperature;
    delay_init();            //延时函数初始化   
    uart_init(9600);        //串口初始化为9600
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
    LED_Init();             //初始化与LED连接的硬件接口
       
                TIM3_Int_Init(9999,7199);//10Khz的计数频率,计数到5000为500ms  
               
    LCD_Init();
    POINT_COLOR = RED;             //设置字体为红色
    LCD_ShowString(0, 50, 200, 16, 16, "STM32 test");
        LCD_ShowString(0, 70, 200, 16, 16, "name: zhang qi qi ");
       
    //LCD_ShowString(0,90,200,16,16,"Max 32 C Min 26 C");
    memset(shuzu, 0, 20);
    sprintf(shuzu, "Max is %2d C,Min is %2d C", temp_high, temp_low);
    LCD_ShowString(0, 90, 200, 16, 16, shuzu);
   
    while (DS18B20_Init())   //DS18B20初始化   
    {
        LCD_ShowString(0, 130, 200, 16, 16, "DS18B20 Error");
        delay_ms(200);
        LCD_Fill(0, 130, 239, 130 + 16, WHITE);
        delay_ms(200);
    }
   
    POINT_COLOR = BLUE;   //设置字体为蓝色
    LCD_ShowString(0, 110, 260, 16, 16, "The temperature is:  . C  now ");
                LCD_ShowChar(0+25*8,110,',',16,0);
                LCD_ShowChar(0+29*8,110,'!',16,0);
    while (1)
    {
                               
               
                                POINT_COLOR = BLUE;   //设置字体为蓝色
                               
        if (t % 10 == 0)   //每100ms读取一次
        {
                                                t = 0;
            temperature = DS18B20_Get_Temp();
            if (temperature < 0)
            {
                LCD_ShowChar(0 + 40, 150, '-', 16, 0);           //显示负号
                temperature = -temperature;                   //转为正数
            }
            else
                LCD_ShowChar(0 + 40, 150, ' ', 16, 0);         //去掉负号
                                               
                                                memset(shuzu, 0, 20);
                                                sprintf(shuzu, "The temperature is:%3d.%1dC", temperature / 10, temperature % 10);
                                                LCD_ShowString(0, 110, 200, 16, 16, shuzu);
                                                        
        }

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

使用道具 举报

0

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2020-5-26
在线时间
84 小时
发表于 2024-7-4 13:21:20 | 显示全部楼层

回帖奖励 +2 金钱

  while (1)
里要有按键检测函数
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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