三、LED初始化
- #include "led.h"
 
 
 
- void led_init(void)
 
- {
 
-         GPIO_InitTypeDef gpio_structure;
 
-         
 
-         RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_GPIOC,ENABLE);
 
-         RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_GPIOA,ENABLE);
 
-         
 
-         gpio_structure.IT=GPIO_IT_NONE;
 
-         gpio_structure.Mode=GPIO_MODE_OUTPUT_PP;
 
-         gpio_structure.Pins=GPIO_PIN_13;
 
-         
 
-         GPIO_Init(CW_GPIOC,&gpio_structure);
 
-         
 
-         gpio_structure.IT=GPIO_IT_NONE;
 
-         gpio_structure.Mode=GPIO_MODE_OUTPUT_PP;
 
-         gpio_structure.Pins=GPIO_PIN_7|GPIO_PIN_8;
 
-         
 
-         GPIO_Init(CW_GPIOA,&gpio_structure);
 
-         
 
-         GPIO_WritePin(CW_GPIOC,GPIO_PIN_13,GPIO_Pin_SET);
 
-         GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_SET);
 
-         GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_SET);
 
 
- }
 
 
- void led_on(led_type led)
 
- {
 
-         switch(led)
 
-         {
 
-                 case led_1:GPIO_WritePin(CW_GPIOC,GPIO_PIN_13,GPIO_Pin_RESET);
 
-                         break;
 
-                 case led_2:GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_RESET);
 
-                         break;
 
-                 case led_3:GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_RESET);
 
-                         break;
 
-                 case led_all:
 
-                         GPIO_WritePin(CW_GPIOC,GPIO_PIN_13,GPIO_Pin_RESET);
 
-                         GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_RESET);
 
-                         GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_RESET);
 
-                         break;
 
-                 default:
 
-                         break;
 
-         }
 
- }
 
 
 
- void led_off(led_type led)
 
- {
 
-         switch(led)
 
-         {
 
-                 case led_1:GPIO_WritePin(CW_GPIOC,GPIO_PIN_13,GPIO_Pin_SET);
 
-                         break;
 
-                 case led_2:GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_SET);
 
-                         break;
 
-                 case led_3:GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_SET);
 
-                         break;
 
-                 case led_all:
 
-                         GPIO_WritePin(CW_GPIOC,GPIO_PIN_13,GPIO_Pin_SET);
 
-                         GPIO_WritePin(CW_GPIOA,GPIO_PIN_7,GPIO_Pin_SET);
 
-                         GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_SET);
 
-                         break;
 
-                 default:
 
-                         break;
 
-         }
 
- }
 
 
- void led_toggle(led_type led)
 
- {
 
-         switch(led)
 
-         {
 
-                 case led_1:GPIO_TogglePin(CW_GPIOC,GPIO_PIN_13);
 
-                         break;
 
-                 case led_2:GPIO_TogglePin(CW_GPIOA,GPIO_PIN_7);
 
-                         break;
 
-                 case led_3:GPIO_TogglePin(CW_GPIOA,GPIO_PIN_8);
 
-                         break;
 
-                 case led_all:
 
-                         GPIO_TogglePin(CW_GPIOC,GPIO_PIN_13);
 
-                         GPIO_TogglePin(CW_GPIOA,GPIO_PIN_7);
 
-                         GPIO_TogglePin(CW_GPIOA,GPIO_PIN_8);
 
-                         break;
 
-                 default:
 
-                         break;
 
-         }
 
- }
 
- #ifndef _led_H
 
- #define _led_H
 
 
- #include "cw32l031.h"
 
- #include "cw32l031_gpio.h"
 
- #include "cw32l031_rcc.h"
 
 
- typedef enum
 
- {
 
-         led_1=1,
 
-         led_2,
 
-         led_3,
 
-         led_all
 
- }led_type;
 
 
 
- void led_init(void);
 
- void led_on(led_type led);
 
- void led_off(led_type led);
 
- void led_toggle(led_type led);
 
 
 
- #endif
 
 
- #include "main.h"
 
 
- /******************************************************************************/
 
 
- static TaskHandle_t led1_task;
 
- static TaskHandle_t led2_task;
 
- static TaskHandle_t led3_task;
 
- static TaskHandle_t app_task;
 
 
 
- static void led1_entry(void *arg);
 
- static void led2_entry(void *arg);
 
- static void led3_entry(void *arg);
 
- static void app_entry(void* arg);
 
- /**
 
-  ******************************************************************************
 
-  ** \brief  Main function of project
 
-  **
 
-  ** \return uint32_t return value, if needed
 
-  **
 
-  ** This sample toggle GPIOA.00
 
-  **
 
-  ******************************************************************************/
 
- int32_t main(void)
 
- {
 
-         BaseType_t xreturn=pdPASS;
 
-         
 
-         led_init();
 
- //        systick_set(8);
 
-         SysTick_Config(SystemCoreClock);
 
-         beep_init();
 
 
-     xreturn=xTaskCreate(app_entry,"app",64,NULL,1,&app_task);
 
-         if(pdPASS==xreturn)
 
-         {
 
-                 vTaskStartScheduler();
 
-         }
 
-         else
 
-         {
 
-                 return -1;
 
-         }
 
 
- }
 
 
 
- static void app_entry(void* arg)
 
- {
 
- //        BaseType_t xreturn=pdPASS;
 
-         taskENTER_CRITICAL();
 
-         
 
-         xTaskCreate(led1_entry,"led1",64,NULL,2,&led1_task);
 
-         
 
-         
 
-         xTaskCreate(led2_entry,"led2",64,NULL,3,&led2_task);
 
-         
 
-         
 
-         xTaskCreate(led3_entry,"led3",64,NULL,4,&led3_task);
 
-         
 
-         
 
-         vTaskDelete(app_task);
 
-         taskEXIT_CRITICAL();
 
- }
 
 
 
- static void led1_entry(void *arg)
 
- {
 
-         while(1)
 
-         {
 
-                 led_toggle(led_1);
 
-                 vTaskDelay(350);
 
-         }
 
- }
 
 
 
- static void led2_entry(void *arg)
 
- {
 
-         while(1)
 
-         {
 
-                 led_toggle(led_2);
 
-                 vTaskDelay(450);
 
-         }
 
- }
 
 
 
- static void led3_entry(void *arg)
 
- {
 
-         while(1)
 
-         {
 
-                 led_toggle(led_3);
 
-                 vTaskDelay(550);
 
-         }
 
-         
 
- }
 
 
 
- /******************************************************************************
 
-  * EOF (not truncated)
 
-  ******************************************************************************/
 
- #ifdef  USE_FULL_ASSERT
 
- /**
 
-   * [url=home.php?mod=space&uid=247401]@brief[/url]  Reports the name of the source file and the source line number
 
-   *         where the assert_param error has occurred.
 
-   * @param  file: pointer to the source file name
 
-   * @param  line: assert_param error line source number
 
-   * @retval None
 
-   */
 
- void assert_failed(uint8_t *file, uint32_t line)
 
- {
 
-     /* USER CODE BEGIN 6 */
 
-     /* User can add his own implementation to report the file name and line number,
 
-        tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 
-     /* USER CODE END 6 */
 
- }
 
- #endif /* USE_FULL_ASSERT */
 
 
移植结果展示
