STM32F103C8T6 上移植的最新 FreeRTOS V10.1.1
單片機源程序如下:
- #include "FreeRTOS.h"
- #include "task.h"
- #include "main.h"
- #define LED_Port GPIOC
- #define LED_RCC RCC_APB2Periph_GPIOC
- #define LED_Pin GPIO_Pin_13
- #define LED0 PCout(13)
- /*******************************************************************************
- * ? ? ? : delay_ms
- * ???? : ????,??ms
- * ? ? : i
- * ? ? : ?
- *******************************************************************************/
- void delay_ms(u32 i)
- {
- u32 temp;
- SysTick->LOAD=9000*i; //??????, 72MHZ?
- SysTick->CTRL=0X01; //??,???????,???????
- SysTick->VAL=0; //?????
- do
- {
- temp=SysTick->CTRL; //????????
- }
- while((temp&0x01)&&(!(temp&(1<<16)))); //??????
- SysTick->CTRL=0; //?????
- SysTick->VAL=0; //?????
- }
- void LED_Init(void)
- {
- GPIO_InitTypeDef LED_GPIO;
-
- RCC_APB2PeriphClockCmd(LED_RCC,ENABLE);
-
- LED_GPIO.GPIO_Mode = GPIO_Mode_Out_PP;
- LED_GPIO.GPIO_Pin = LED_Pin;
- LED_GPIO.GPIO_Speed = GPIO_Speed_50MHz;
-
- GPIO_Init(LED_Port,&LED_GPIO);
- LED0 = 1;
- }
- void vLedTask()
- {
- while(1)
- {
- LED0 = !LED0;
- vTaskDelay(1000 / portTICK_PERIOD_MS);
- }
- }
- int main()
- {
- SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
- SystemInit();
- LED_Init();
-
- xTaskCreate(vLedTask, "vLedTask", configMINIMAL_STACK_SIZE, NULL, 3, NULL);
- vTaskStartScheduler(); //??????
-
- for(;;){
- LED0 = !LED0;
- delay_ms(100);
- }
- }
復制代碼
所有資料51hei提供下載:
STM32F103C8T6_FreeRtos_Demo.rar
(301.85 KB, 下載次數: 107)
2018-9-12 04:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|