STM32系统初始化代码详解:System_Init1()函数
STM32系统初始化代码详解:System_Init1()函数
int System_Init1(void)
{
RCC_Configuration(); //初始化系统时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //禁用JTAG
NVIC_Configuration(); //中断初始化
delay_init(72); // 初始化滴答定时器
EEPROM_Init();
USART1_Init(9600);
LCD_Init3();
ADC1_Init();
KEY_Init();
USART2_Init();
RELAY_Init();
Init_DHT11(); PWM4_Init();
Motor_Go_Angleall(0);
}
代码解读:
-
RCC_Configuration():初始化系统时钟。该函数用于配置STM32的时钟系统,包括主时钟、AHB时钟、APB1时钟和APB2时钟等。
-
RCC_APB2PeriphClockCmd():使能AFIO、GPIOB和GPIOF的时钟。该函数用于使能特定的外设时钟,这里使能了AFIO、GPIOB和GPIOF的时钟,以便后续访问这些外设的寄存器。
-
GPIO_PinRemapConfig():禁用JTAG,使PB3、PB4和PA15成为GPIO口。该函数用于配置引脚复用功能,这里将JTAG功能禁用,并将PB3、PB4和PA15引脚重新映射为GPIO口,以便后续使用这些引脚。
-
NVIC_Configuration():初始化中断控制器。该函数用于配置中断控制器NVIC,包括设置中断优先级、使能或禁用中断等。
-
delay_init():初始化滴答定时器,用于延时。该函数用于初始化滴答定时器,以便后续使用延时函数。
-
EEPROM_Init():初始化EEPROM。该函数用于初始化EEPROM芯片,以便后续进行数据读写操作。
-
USART1_Init():初始化USART1串口,波特率为9600。该函数用于初始化USART1串口,设置波特率为9600bps,以便后续进行串口通信。
-
LCD_Init3():初始化LCD屏幕。该函数用于初始化LCD屏幕,以便后续显示数据。
-
ADC1_Init():初始化ADC1模块。该函数用于初始化ADC1模块,以便后续进行模拟信号采集。
-
KEY_Init():初始化矩阵键盘。该函数用于初始化矩阵键盘,以便后续读取按键信息。
-
USART2_Init():初始化USART2串口。该函数用于初始化USART2串口,以便后续进行串口通信。
-
RELAY_Init():初始化继电器。该函数用于初始化继电器,以便后续控制继电器开关。
-
Init_DHT11():初始化DHT11温湿度传感器。该函数用于初始化DHT11温湿度传感器,以便后续读取温湿度数据。
-
PWM4_Init():初始化PWM4模块。该函数用于初始化PWM4模块,以便后续进行PWM输出。
-
Motor_Go_Angleall():设置所有舵机的角度为0度。该函数用于设置所有舵机的角度为0度,以便后续进行舵机控制。
代码功能总结:
该代码示例展示了STM32系统初始化过程,包括时钟配置、GPIO配置、中断初始化、外设初始化等。通过该示例代码,可以了解STM32系统初始化的基本流程,以及各个模块的配置方法。
注意事项:
- 以上代码仅供参考,实际应用中需要根据具体情况进行修改。
- 代码中使用的函数和库文件需要根据具体的开发环境进行调整。
- 代码中的注释仅供参考,实际应用中需要根据具体的代码进行修改。
原文地址: https://www.cveoy.top/t/topic/oHcR 著作权归作者所有。请勿转载和采集!