stm32F103R6实现流水灯参考源代码
#include "main.h"
#include "gpio.h"
void SystemClock_Config(void);
void sleep(int a)
{int i=0,j=0;for(i=0;i<a;i++){for(j=0;j<2000;j++);}}
真正发挥效果的是这个main函数//
int main(void)
{int i=0;HAL_Init();SystemClock_Config();MX_GPIO_Init();while (1){GPIOB->ODR=0Xffff;HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);HAL_Delay(500);GPIOB->ODR=0Xffff;HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);HAL_Delay(500);GPIOB->ODR=0Xffff;HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_2);HAL_Delay(500);}
}
///
void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK){Error_Handler();}
}
void Error_Handler(void)
{__disable_irq();while (1){}
}#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t *file, uint32_t line)
{}
#endif /* USE_FULL_ASSERT */