|
|
PY32F030K28T6工程模板
工程模板现象,PA5IO口进行电平翻转
- #include "main.h"
- static void APP_GpioInit(void);
- static void APP_SystemClockConfig(void);
- /**
- * @brief 应用程序入口函数.
- * @retval int
- */
- int main(void)
- {
- /* 初始化所有外设,Flash接口,SysTick */
- HAL_Init();
- /* 配置系统时钟 */
- APP_SystemClockConfig();
- /* 初始化PA5 */
- APP_GpioInit();
-
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//设置IO口为高电平
- while (1)
- {
- HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);//翻转IO
- HAL_Delay(100);
- }
- }
- /**
- * @brief GPIO初始化
- * @param 无
- * @retval 无
- */
- static void APP_GpioInit()
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- __HAL_RCC_GPIOA_CLK_ENABLE(); /* GPIOA时钟使能 */
- /* 初始化GPIO PA11 */
- GPIO_InitStruct.Pin = GPIO_PIN_5;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */
- GPIO_InitStruct.Pull = GPIO_PULLUP; /* 使能上拉 */
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; /* GPIO速度 */
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* GPIO初始化 */
- }
- /**
- * @brief 时钟配置函数
- * @param 无
- * @retval 无
- */
- static void APP_SystemClockConfig(void)
- {
- RCC_OscInitTypeDef RCC_OscInitStruct = {0};
- RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- /* 配置时钟源HSE/HSI/LSE/LSI */
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_LSI;
- RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* 开启HSI */
- RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* 不分频 */
- /* RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_4MHz; */ /* 配置HSI输出时钟为4MHz */
- /* RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_8MHz; */ /* 配置HSI输出时钟为8MHz */
- /* RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_16MHz; */ /* 配置HSI输出时钟为16MHz */
- /* RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_22p12MHz; */ /* 配置HSI输出时钟为22.12MHz */
- RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* 配置HSI输出时钟为24MHz */
- if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) /* 初始化RCC振荡器 */
- {
- APP_ErrorHandler();
- }
- /* 初始化CPU,AHB,APB总线时钟 */
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; /* RCC系统时钟类型 */
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; /* SYSCLK的源选择为HSI */
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* APH时钟不分频 */
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB时钟不分频 */
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) /* 初始化RCC系统时钟(FLASH_LATENCY_0=24M以下;FLASH_LATENCY_1=48M) */
- {
- APP_ErrorHandler();
- }
- }
- /**
- * @brief 错误执行函数
- * @param 无
- * @retval 无
- */
- void APP_ErrorHandler(void)
- {
- while (1)
- {
- }
- }
- #ifdef USE_FULL_ASSERT
- /**
- * @brief 输出产生断言错误的源文件名及行号
- * @param file:源文件名指针
- * @param line:发生断言错误的行号
- * @retval 无
- */
- void assert_failed(uint8_t *file, uint32_t line)
- {
- /* 用户可以根据需要添加自己的打印信息,
- 例如: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
- /* 无限循环 */
- while (1)
- {
- }
- }
- #endif /* USE_FULL_ASSERT */
- /************************ (C) COPYRIGHT Puya *****END OF FILE******************/
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|