TIM2_Int_Init(1000-1,7200-1); delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú KEY_Init(); //°´¼ü³õʼ»¯ hx AT24CXX_Init(); //IIC³õʼ»¯ OLED_init(); // point= &picture_tab[0]; OLED_Clear(); while(1) { keyval=KEY_Scan(1); OLED_DrawBMP(32,0,96,8,(uint8_t *)BMP2); if(keyval){ OLED_Clear(); while(keyval==1) { OLED_DrawBMP(32,0,96,8,(uint8_t *)BMP1[Num]); if(Num>109) {Num=1;OLED_Clear();break;} } }这串代码什么意思
时间: 2024-03-26 10:36:32 浏览: 141
这是一个嵌入式系统的主函数,该函数包含了各种外设的初始化以及一个循环,程序会一直运行,直到被手动停止。具体内容如下:
1. `TIM2_Int_Init(1000-1,7200-1)`:初始化定时器 TIM2,设置定时周期为 1000-1,时钟预分频为 7200-1。
2. `delay_init()`:初始化延时函数,用于实现程序中的延时操作。
3. `NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)`:配置中断优先级分组,将中断优先级分为两组,其中一组为两位抢占优先级和两位响应优先级。
4. `LED_Init()`:初始化 LED 灯,用于控制外部 LED 灯的亮灭。
5. `KEY_Init()`:初始化按键,用于实现程序中的按键操作。
6. `AT24CXX_Init()`:初始化 IIC 总线,用于连接 AT24CXX EEPROM 存储器。
7. `OLED_init()`:初始化 OLED 显示屏,用于显示程序中的图像和文本。
8. `OLED_Clear()`:清空 OLED 显示屏上的内容。
9. `while(1)`:进入主循环,程序会一直运行,直到被手动停止。
10. `keyval=KEY_Scan(1)`:检测是否有按键按下,如果有,将按键值存储在变量 `keyval` 中。
11. `OLED_DrawBMP(32,0,96,8,(uint8_t *)BMP2)`:在 OLED 显示屏上显示一张图片,该图片的位置和大小由参数指定。
12. `if(keyval)`:如果检测到按键按下,执行下面的操作。
13. `OLED_Clear()`:清空 OLED 显示屏上的内容。
14. `while(keyval==1)`:循环显示一系列图片,直到按键被松开。
15. `OLED_DrawBMP(32,0,96,8,(uint8_t *)BMP1[Num])`:在 OLED 显示屏上显示一张图片,该图片的位置和大小由参数指定,并且是由数组 `BMP1` 中的第 `Num` 个元素指定的。
16. `if(Num>109) {Num=1;OLED_Clear();break;}`:如果 `Num` 大于 109,将其重置为 1,并清空 OLED 显示屏上的内容并跳出循环。
阅读全文