/****************************************************************************
|
* Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com
|
* Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
|
* Description: STM32L151C8T6 CubeMX ¿ª·¢°å FreeRTOS v10.1.1 ʾÀý´úÂë
|
¿ª·¢°åÌÔ±¦¹ºÂòµØÖ·£º https://item.taobao.com/item.htm?spm=a1z09.2.0.0.6ff42e8dPmfuKR&id=551780894246&_u=41ifnbo379e
|
*
|
* ChangeLog:
|
* °æ±¾ºÅ ÈÕÆÚ ×÷Õß ËµÃ÷
|
* V1.0.0 2018.11.04 GuoWenxue ·¢²¼¸Ã°æ±¾
|
****************************************************************************/
|
|
#include <stdio.h>
|
#include "stm32_vport.h"
|
|
#define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
#define ledSTACK_SIZE configMINIMAL_STACK_SIZE
|
|
static void vLEDFlashTask( void * pvParameters );
|
static void vSerialPutsTask( void *pvParameters );
|
|
int main(void)
|
{
|
prvSetupHardware();
|
|
printf("STM32L151C8T6A CubeMX Board FreeRTOS Start Running.\n");
|
|
printf("Create LED Flash task now.\n");
|
xTaskCreate( vLEDFlashTask, "LED", ledSTACK_SIZE, ( void * ) NULL, mainFLASH_TASK_PRIORITY, ( TaskHandle_t * ) NULL );
|
|
printf("Create Serial puts task now.\n");
|
xTaskCreate( vSerialPutsTask, "TTY", ledSTACK_SIZE, ( void * ) NULL, mainFLASH_TASK_PRIORITY, ( TaskHandle_t * ) NULL );
|
|
printf("FreeRTOS Task Scheduler Start...\n");
|
vTaskStartScheduler();
|
|
/* !!! Program will stuck in vTaskStartScheduler() and never comes here !!!*/
|
printf("FreeRTOS Task Scheduler End\n");
|
while(1);
|
}
|
|
|
static void vLEDFlashTask( void *pvParameters )
|
{
|
const TickType_t xFlashRate = 125/ portTICK_PERIOD_MS;
|
|
for(;;)
|
{
|
vTaskDelay( xFlashRate );
|
turn_led(LED1, ON);
|
|
vTaskDelay( xFlashRate );
|
turn_led(LED1, OFF);
|
}
|
}
|
|
static void vSerialPutsTask( void *pvParameters )
|
{
|
const TickType_t xFlashRate = 10000/ portTICK_PERIOD_MS;
|
|
for(;;)
|
{
|
printf("Serial Puts Task Continue Running...\n");
|
vTaskDelay( xFlashRate );
|
}
|
}
|