LED_Init();//LED³õʼ»¯ KEY_Init();//°´¼ü³õʼ»¯ SysTick_Init();//ÑÓʱ³õʼ»¯ LCD1602_Init(); //LCD³õʼ»¯£¬²âÊÔ ADC1_Init(); LED0_ON;LED1_ON;LED2_ON;LED3_ON;LED4_ON;LED5_ON; LCD1602_ShowStr(4,0," liuyao",7); LCD1602_ShowStr(2,1,"2022020131011",13); Delay_ms(100); LED0_OFF;LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF; LCD1602_WriteCmd(0x01);//ÇåÆÁ
时间: 2024-04-27 21:21:40 浏览: 10
这段代码是在进行初始化操作,主要是对各个模块进行初始化配置,使其能够正常工作。具体来说:
1. LED_Init():对LED灯进行初始化配置,使其能够正常工作。
2. KEY_Init():对按键进行初始化配置,使其能够正常工作。
3. SysTick_Init():对系统滴答定时器进行初始化配置,使其能够正常工作。
4. LCD1602_Init():对LCD1602液晶屏进行初始化配置,并进行相关的测试。
5. ADC1_Init():对ADC1模块进行初始化配置,使其能够正常工作。
6. LED0_ON;LED1_ON;LED2_ON;LED3_ON;LED4_ON;LED5_ON;:打开6个LED灯。
7. LCD1602_ShowStr(4,0," liuyao",7);:在LCD1602液晶屏上显示字符串“ liuyao”。
8. LCD1602_ShowStr(2,1,"2022020131011",13);:在LCD1602液晶屏上显示字符串“2022020131011”。
9. Delay_ms(100);:延时100毫秒。
10. LED0_OFF;LED1_OFF;LED2_OFF;LED3_OFF;LED4_OFF;LED5_OFF;:关闭6个LED灯。
11. LCD1602_WriteCmd(0x01):向LCD1602液晶屏写入清屏命令,清除屏幕上的内容。
总之,这段代码的作用是对各个模块进行初始化配置,使其能够正常工作,并在LCD1602液晶屏上显示一些信息。
相关问题
while(DS18B20_Init()) //DS18B20³õʼ»¯ while(1)
这是一段 C 语言代码,其中使用了一个函数 DS18B20_Init() 进行 DS18B20 温度传感器的初始化,该函数的返回值为一个布尔值。当 DS18B20_Init() 函数返回真值时,while 循环会一直执行,直到函数返回假值。在 while 循环中,程序会一直等待 DS18B20 传感器准备就绪。一旦传感器准备就绪,程序将跳出 while 循环并执行下一条指令。程序的主函数将一直执行,直到程序被手动终止。
#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" //#include "oled.h" #include "24cxx.h" #include "OLED4PINiic.h"const u8 TEXT_Buffer[]={"Explorer STM32F4 IIC TEST"}; #define SIZE sizeof(TEXT_Buffer) int main(void) { const unsigned char *point; u16 i=0; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ // uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú // KEY_Init(); //°´¼ü³õʼ»¯ AT24CXX_Init(); //IIC³õʼ»¯ OLED_init(); point= &picture_tab[0]; while(1) { OLED_ShowString(0,30,"21221054",16); OLED_ShowString(0,15,"2023/5/18",16); OLED_ShowChinese(0,0,0,16,1); OLED_ShowChinese(16,0,1,16,1); OLED_ShowChinese(32,0,2,16,1); OLED_Refresh_Gram(); //¸üÐÂÏÔʾµ½OLED delay_ms(100); if(++i > 3) { LED1=!LED1;//ÌáʾϵͳÕýÔÚÔËÐÐ i=0; } } }请在此函数的基础上,编写程序使得字体从左到右滚动显示
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
//#include "oled.h"
#include "24cxx.h"
#include "OLED4PINiic.h"
const u8 TEXT_Buffer[]={"Explorer STM32F4 IIC TEST"};
#define SIZE sizeof(TEXT_Buffer)
int main(void) {
const unsigned char *point;
u16 i=0;
delay_init();
//ÑÓʱº¯Êý³õʼ»¯
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
//uart_init(115200);
//´®¿Ú³õʼ»¯Îª115200
LED_Init();
//³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
// KEY_Init();
//°´¼ü³õʼ»¯
AT24CXX_Init();
//IIC³õʼ»¯
OLED_init();
point= &picture_tab[0];
while(1)
{
for(u8 j=0;j<SIZE;j++)
{
OLED_Clear();
OLED_ShowString(j*16,30,&TEXT_Buffer[j],16);
OLED_Refresh_Gram(); //¸üÐÂÏÔʾµ½OLED
delay_ms(100);
}
if(++i > 3)
{
LED1=!LED1;//ÌáʾϵͳÕýÔÚÔËÐÐ
i=0;
}
}
}
在while循环中,添加一个for循环,用于控制字体从左到右滚动。首先需要清屏,然后通过OLED_ShowString()函数控制字体显示位置,最后通过OLED_Refresh_Gram()函数刷新OLED。循环次数为字符串长度,每次循环将字符串向右移动一个字符的长度。