久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9946|回復: 10
收起左側

STM32F407和F103 華為liteos源碼

  [復制鏈接]
ID:196217 發表于 2017-5-3 20:57 | 顯示全部樓層 |閱讀模式
STM32F407和F103 華為liteos源碼,可以運行基本功能。在此基礎上進行修改。
0.png
實驗器材:
    MiniSTM32F103開發板V3版本
   
實驗目的:
    學習GPIO作為輸出的使用
   
硬件資源:
    1,DS0(連接在PA8)
    2,DS1(連接在PD2)
   
實驗現象:
    本實驗通過代碼控制開發板上的兩個LED:DS0和DS1交替閃爍,實現類似跑馬燈的效果。
   
注意事項:
    無.

stm32單片機源程序:
  1. #include "main.h"
  2. UINT32 g_TestTskHandle;
  3. void hardware_init(void)
  4. {
  5.         delay_init();                //延時函數初始化
  6.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  7.         uart_init(115200);        //初始化串口波特率115200
  8.         LED_Init();                                  //初始化LED
  9.   OLED_Init();                        //初始化OLED  
  10.         OLED_Clear();
  11.   EXIT_KEY_Init();
  12.   LOS_HwiCreate(7,0,0,EXTI1_IRQHandler,NULL);//創建中斷       
  13.         LOS_HwiCreate(8,0,0,EXTI2_IRQHandler,NULL);//創建中斷       
  14.         LOS_HwiCreate(9,0,0,EXTI3_IRQHandler,NULL);//創建中斷       
  15. }
  16. VOID task1(void)
  17. {
  18.         UINT32 uwRet = LOS_OK;
  19.         UINT32 count=0;
  20.         while(1)
  21.         {
  22.                 count++;
  23.                 printf("This is task 1,count is %d\r\n",count);
  24.                 LED0=~LED0;
  25.                 uwRet = LOS_TaskDelay(1000);
  26.                 if(uwRet !=LOS_OK)
  27.                         return;
  28.         }
  29. }

  30. UINT32 creat_task1(void)
  31. {
  32.         UINT32 uwRet = LOS_OK;
  33.         TSK_INIT_PARAM_S task_init_param;
  34.         task_init_param.usTaskPrio = 3;
  35.         task_init_param.pcName = "task1";
  36.         task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)task1;
  37.         task_init_param.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;
  38.         task_init_param.uwResved = LOS_TASK_STATUS_DETACHED;
  39.         uwRet = LOS_TaskCreate(&g_TestTskHandle,&task_init_param);
  40.         if(uwRet !=LOS_OK)
  41.         {
  42.                 return uwRet;
  43.         }
  44.         return uwRet;
  45. }

  46. VOID task2(void)
  47. {
  48.         UINT32 uwRet = LOS_OK;
  49.         UINT32 count=0;
  50.         while(1)
  51.         {
  52.                 count++;
  53.                 printf("This is task 2,count is %d\r\n",count);
  54.                 LED1=~LED1;
  55.                 uwRet = LOS_TaskDelay(1000);
  56.                 if(uwRet !=LOS_OK)
  57.                         return;
  58.         }
  59. }

  60. UINT32 creat_task2(void)
  61. {
  62.         UINT32 uwRet = LOS_OK;
  63.         TSK_INIT_PARAM_S task_init_param;
  64.         task_init_param.usTaskPrio = 5;
  65.         task_init_param.pcName = "task2";
  66.         task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)task2;
  67.         task_init_param.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;
  68.         task_init_param.uwResved = LOS_TASK_STATUS_DETACHED;
  69.         uwRet = LOS_TaskCreate(&g_TestTskHandle,&task_init_param);
  70.         if(uwRet !=LOS_OK)
  71.         {
  72.                 return uwRet;
  73.         }
  74.         return uwRet;
  75. }


  76. VOID task3(void)
  77. {
  78.         UINT32 uwRet = LOS_OK;
  79.         UINT32 count=100;
  80.         u8 t;
  81.         while(1)
  82.         {
  83.                 OLED_Clear();
  84.                 OLED_ShowCHinese(0,0,0);//中
  85.                 OLED_ShowCHinese(18,0,1);//景
  86.                 OLED_ShowCHinese(36,0,2);//園
  87.                 OLED_ShowCHinese(54,0,3);//電
  88.                 OLED_ShowCHinese(72,0,4);//子
  89.                 OLED_ShowCHinese(90,0,5);//科
  90.                 OLED_ShowCHinese(108,0,6);//技
  91.                 OLED_ShowString(0,3,"1.3' OLED TEST");
  92.                 OLED_ShowString(0,6,"ASCII:");  
  93.                 OLED_ShowString(63,6,"CODE:");  
  94.                 OLED_ShowChar(48,6,t);//顯示ASCII字符          
  95.                 t++;
  96.                 if(t>'~')t=' ';
  97.                 OLED_ShowNum(103,6,t,3,16);//顯示ASCII字符的碼值        
  98.                 //delay_ms(100);
  99.                 /*OLED_Clear();
  100.                 delay_ms(8000);
  101.                 OLED_DrawBMP(0,0,128,8,BMP1);  //圖片顯示(圖片顯示慎用,生成的字表較大,會占用較多空間,FLASH空間8K以下慎用)
  102.                 delay_ms(8000);
  103.                 OLED_DrawBMP(0,0,128,8,BMP2);
  104.                 delay_ms(8000);*/
  105.                 printf("This is task 3,count is %d\r\n",count);
  106.                 uwRet = LOS_TaskDelay(100);
  107.                 if(uwRet !=LOS_OK)
  108.                         return;
  109.         }
  110. }

  111. UINT32 creat_task3(void)
  112. {
  113.         UINT32 uwRet = LOS_OK;
  114.         TSK_INIT_PARAM_S task_init_param;
  115.         task_init_param.usTaskPrio = 9;
  116.         task_init_param.pcName = "task3";
  117.         task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)task3;
  118.         task_init_param.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;
  119.         task_init_param.uwResved = LOS_TASK_STATUS_DETACHED;
  120.         uwRet = LOS_TaskCreate(&g_TestTskHandle,&task_init_param);
  121.         if(uwRet !=LOS_OK)
  122.         {
  123.                 return uwRet;
  124.         }
  125.         return uwRet;
  126. }



  127. UINT32 osAppInit(void)
  128. {
  129.         UINT32 uwRet = 0;
  130.         hardware_init();
  131.         printf("Welcom to Huawei LiteOS!!!\r\n");
  132.         delay_ms(100);
  133.         uwRet = creat_task1();
  134.         if(uwRet !=LOS_OK)
  135.         {
  136.                 return uwRet;
  137.         }
  138.        
  139.         uwRet = creat_task2();
  140.         if(uwRet !=LOS_OK)
  141.         {
  142.                 return uwRet;
  143.         }
  144.        
  145.         uwRet = creat_task3();
  146.         if(uwRet !=LOS_OK)
  147.         {


  148. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
下載:
Huawei LiteOS for ALIENTEK MiniSTM32V3(20161130).rar (479.55 KB, 下載次數: 125)
回復

使用道具 舉報

ID:143930 發表于 2018-5-18 09:00 | 顯示全部樓層
下在學習LITEOS
回復

使用道具 舉報

ID:363118 發表于 2018-7-2 14:05 | 顯示全部樓層
很不錯的講解liteos移植stm32的工程
回復

使用道具 舉報

ID:363118 發表于 2018-7-2 14:06 | 顯示全部樓層
確實是不錯的資源,正好再搞liteos
回復

使用道具 舉報

ID:394966 發表于 2018-9-7 13:50 | 顯示全部樓層
很好,很需要liteos一直到stm32的教程
回復

使用道具 舉報

ID:448046 發表于 2018-12-17 16:02 | 顯示全部樓層
謝謝分享。。。。
回復

使用道具 舉報

ID:232751 發表于 2019-8-21 11:31 | 顯示全部樓層
學習一下
回復

使用道具 舉報

ID:609492 發表于 2019-9-12 17:04 | 顯示全部樓層
有STM32F407的例子嗎?
回復

使用道具 舉報

ID:73285 發表于 2019-9-24 08:56 | 顯示全部樓層
很好的例子
回復

使用道具 舉報

ID:480770 發表于 2019-12-7 15:56 | 顯示全部樓層
好東西,學習學習
回復

使用道具 舉報

ID:280466 發表于 2024-5-1 18:47 | 顯示全部樓層
確實是不錯的資源,正好再搞liteos
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区在线播放 | 91porn在线| 国产精品视频999 | 日韩欧美专区 | 国产精品国产精品国产专区不卡 | 91视频网址 | 精品国产第一区二区三区 | 久久av网| 国产精品久久久久久久白浊 | 日韩精品在线看 | 中日av | 欧美久久电影 | 美女视频h | 日韩伦理一区二区 | 日本超碰 | 日本久久视频 | 国产免费一区二区三区网站免费 | 欧美一区二区三区在线观看视频 | 国产成人在线视频 | 欧美激情区 | 久久久久黑人 | 精品麻豆剧传媒av国产九九九 | 国产日韩欧美在线 | 久久高清精品 | 天天干天天爱天天操 | 欧美手机在线 | 欧美日韩精品专区 | 天天操 夜夜操 | 国际精品鲁一鲁一区二区小说 | 国产精品色 | 日本天堂一区二区 | 日本在线观看视频 | 欧美成人h版在线观看 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 成人在线观看免费爱爱 | 九九热精品视频 | 久久99视频| 91成人| 久久精品一区 | 在线观看国产精品一区二区 | 久久成人综合 |