static void demo_key0_fun(uint8_t is_normal, uint16_t device_id)//运行测量输出程序// { uint8_t ret; uint16_t dat; uint16_t s=500; while(1) { delay_ms(500);//延时500ms// ret = atk_ms53l0m_modbus_get_data(device_id, &dat);//读取传感器数据// printf("Distance: %dmm\r\n", dat); lcd_show_num(80, 120, dat, 8, 12, BLUE); lcd_show_num(80, 45, s, 8, 12, BLUE);//LCD屏幕显示阈值和距离// if(dat>s) { lcd_show_string(110,81, 100, 16, 16, "NOT", BLUE); printf("vehicle:NOT\r\n");//LCD屏幕和串口输出无车信息// } else { lcd_show_string(110,81, 100, 16, 16, "YES", BLUE); printf("vehicle:YES\r\n");//LCD屏幕和串口输出有车信息// } if (KEY0==0)break;//长按KEY0停止,跳出测量循环// { if(KEY1==0) { s=s+10;//长按KEY1,阈值增长10mm// } if(WK_UP==1) { s=s-10; //长按WK_UP,阈值减少10mm// } } }
时间: 2023-06-23 20:09:52 浏览: 559
这是一段嵌入式系统的代码,主要功能是通过激光测距传感器ATK-MS53L0M获取距离数据,并在LCD屏幕上显示距离和阈值,判断是否有车辆经过。如果距离超过阈值,则认为没有车辆通过,LCD屏幕和串口输出“NOT”,否则认为有车辆通过,LCD屏幕和串口输出“YES”。
在循环中,如果按下KEY0键,则会停止测量循环;如果长按KEY1键,则阈值会增加10mm;如果长按WK_UP键,则阈值会减少10mm。
阅读全文