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);
}

代码解读:

  1. RCC_Configuration():初始化系统时钟。该函数用于配置STM32的时钟系统,包括主时钟、AHB时钟、APB1时钟和APB2时钟等。

  2. RCC_APB2PeriphClockCmd():使能AFIO、GPIOB和GPIOF的时钟。该函数用于使能特定的外设时钟,这里使能了AFIO、GPIOB和GPIOF的时钟,以便后续访问这些外设的寄存器。

  3. GPIO_PinRemapConfig():禁用JTAG,使PB3、PB4和PA15成为GPIO口。该函数用于配置引脚复用功能,这里将JTAG功能禁用,并将PB3、PB4和PA15引脚重新映射为GPIO口,以便后续使用这些引脚。

  4. NVIC_Configuration():初始化中断控制器。该函数用于配置中断控制器NVIC,包括设置中断优先级、使能或禁用中断等。

  5. delay_init():初始化滴答定时器,用于延时。该函数用于初始化滴答定时器,以便后续使用延时函数。

  6. EEPROM_Init():初始化EEPROM。该函数用于初始化EEPROM芯片,以便后续进行数据读写操作。

  7. USART1_Init():初始化USART1串口,波特率为9600。该函数用于初始化USART1串口,设置波特率为9600bps,以便后续进行串口通信。

  8. LCD_Init3():初始化LCD屏幕。该函数用于初始化LCD屏幕,以便后续显示数据。

  9. ADC1_Init():初始化ADC1模块。该函数用于初始化ADC1模块,以便后续进行模拟信号采集。

  10. KEY_Init():初始化矩阵键盘。该函数用于初始化矩阵键盘,以便后续读取按键信息。

  11. USART2_Init():初始化USART2串口。该函数用于初始化USART2串口,以便后续进行串口通信。

  12. RELAY_Init():初始化继电器。该函数用于初始化继电器,以便后续控制继电器开关。

  13. Init_DHT11():初始化DHT11温湿度传感器。该函数用于初始化DHT11温湿度传感器,以便后续读取温湿度数据。

  14. PWM4_Init():初始化PWM4模块。该函数用于初始化PWM4模块,以便后续进行PWM输出。

  15. Motor_Go_Angleall():设置所有舵机的角度为0度。该函数用于设置所有舵机的角度为0度,以便后续进行舵机控制。

代码功能总结:

该代码示例展示了STM32系统初始化过程,包括时钟配置、GPIO配置、中断初始化、外设初始化等。通过该示例代码,可以了解STM32系统初始化的基本流程,以及各个模块的配置方法。

注意事项:

  • 以上代码仅供参考,实际应用中需要根据具体情况进行修改。
  • 代码中使用的函数和库文件需要根据具体的开发环境进行调整。
  • 代码中的注释仅供参考,实际应用中需要根据具体的代码进行修改。

原文地址: https://www.cveoy.top/t/topic/oHcR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录