标签:
1. 目标, PG13,PG14双线程双闪灯。
2. 测试平台
keil v5.13.0.0
cube 4.8.0
3. 步骤
3.1 打开cube, PG13,13设为输出, Rcc选外部晶振, 点选FreeRTOS
3.2 时钟配置界面 enable css, 配置成系统主频168M
3.3 全部默认设置, 生成代码。
3.4 配置好的模版大概是这样的
//void StartDefaultTask(void const * argument); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128); defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL); osKernelStart(); while(1); } /* StartDefaultTask function */ void StartDefaultTask(void const * argument) { /* USER CODE BEGIN 5 */ /* Infinite loop */ for(;;) { osDelay(1); } /* USER CODE END 5 */ }
照猫画虎填上自己代码就行了
void blink_ledG(void const *argument); void blink_ledR(void const *argument); main(){ HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG, GPIO_PIN_14, GPIO_PIN_SET); osThreadDef (ledG, blink_ledG, osPriorityNormal, 0, 128); osThreadDef (ledR, blink_ledR, osPriorityNormal, 0, 128); osThreadCreate(osThread(ledG), NULL); osThreadCreate(osThread(ledR), NULL); osKernelStart(); while (1); } void blink_ledG(void const *argument) { for(;;){ HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET); osDelay(500); HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET); osDelay(500); } } void blink_ledR(void const *argument) { for(;;){ HAL_GPIO_WritePin(GPIOG, GPIO_PIN_14, GPIO_PIN_SET); osDelay(250); HAL_GPIO_WritePin(GPIOG, GPIO_PIN_14, GPIO_PIN_RESET); osDelay(250); } }
标签:
原文地址:http://www.cnblogs.com/zhaitao85/p/4642071.html