找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1978|回复: 0
打印 上一主题 下一主题
收起左侧

STM32F429 uCOSIII_emWin528_Demo(光敏电阻)例程

[复制链接]
跳转到指定楼层
楼主
ID:470752 发表于 2019-1-20 01:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  1. /* --------------- APPLICATION GLOBALS ---------------- */
  2. static  OS_TCB       AppTaskStartTCB;
  3. static  CPU_STK      AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE];

  4. static  OS_TCB       AppTaskObj0TCB;
  5. static  CPU_STK      AppTaskObj0Stk[APP_CFG_TASK_OBJ0_STK_SIZE];

  6. static  OS_TCB       AppTaskGUITCB;
  7. __align(8) static  CPU_STK      AppTaskGUIStk[APP_CFG_TASK_GUI_STK_SIZE];

  8. /*
  9. *********************************************************************************************************
  10. *                                         FUNCTION PROTOTYPES
  11. *********************************************************************************************************
  12. */
  13. static  void  AppTaskStart   (void  *p_arg);
  14. static  void  AppTaskCreate  (void);
  15. static  void  AppObjCreate   (void);

  16. static  void  AppTaskObj0    (void  *p_arg);
  17. static  void  AppTaskGUI     (void  *p_arg);

  18. KEY Key1,Key2;
  19. uint8_t   tpad_flag=0;
  20. /*
  21. *********************************************************************************************************
  22. *                                                main()
  23. *
  24. * Description : This is the standard entry point for C code.  It is assumed that your code will call
  25. *               main() once you have performed all necessary initialization.
  26. *
  27. * Arguments   : none
  28. *
  29. * Returns     : none
  30. *
  31. *********************************************************************************************************
  32. */

  33. int main(void)
  34. {
  35.         OS_ERR   err;
  36. #if (CPU_CFG_NAME_EN == DEF_ENABLED)
  37.         CPU_ERR  cpu_err;
  38. #endif                 

  39.         Mem_Init();                                                 /* Initialize Memory Managment Module                   */
  40.         Math_Init();                                                /* Initialize Mathematical Module                       */

  41. #if (CPU_CFG_NAME_EN == DEF_ENABLED)
  42.         CPU_NameSet((CPU_CHAR *)"STM32F429II",
  43.                                                         (CPU_ERR  *)&cpu_err);
  44. #endif

  45.         BSP_IntDisAll();                                            /* Disable all Interrupts.                              */

  46.         OSInit(&err);                                               /* Init uC/OS-III.                                      */

  47.         App_OS_SetAllHooks();

  48.         OSTaskCreate(&AppTaskStartTCB,                              /* Create the start task                                */
  49.                                                                 "App Task Start",
  50.                                                                 AppTaskStart,
  51.                                                                 0u,
  52.                                                                 APP_CFG_TASK_START_PRIO,
  53.                                                                 &AppTaskStartStk[0u],
  54.                                                                 AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE / 10u],
  55.                                                                 APP_CFG_TASK_START_STK_SIZE,
  56.                                                                 0u,
  57.                                                                 0u,
  58.                                                                 0u,
  59.                                                          (OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
  60.                                                          &err);

  61.   if(err!=OS_ERR_NONE)  bsp_result|=BSP_OS;
  62.         OSStart(&err);                                              /* Start multitasking (i.e. give control to uC/OS-III). */
  63.        
  64.         while (DEF_ON) {                                            /* Should Never Get Here.                               */
  65.                         ;
  66.         }
  67. }

  68. //按键定时扫描的定时器
  69. static void inputscan(void)
  70. {
  71.   OS_ERR  err;
  72.   
  73.   OSSchedLock(&err);
  74.         GT9xx_GetOnePiont();//触摸屏定时扫描
  75.   OSSchedUnlock(&err);
  76.   
  77.         Key_RefreshState(&Key1);//刷新按键状态
  78.         Key_RefreshState(&Key2);//刷新按键状态
  79.         if(Key_AccessTimes(&Key1,KEY_ACCESS_READ)!=0)//按键被按下过
  80.         {
  81.                 LED2_TOGGLE;
  82.                 Key_AccessTimes(&Key1,KEY_ACCESS_WRITE_CLEAR);
  83.         }
  84.         if(Key_AccessTimes(&Key2,KEY_ACCESS_READ)!=0)//按键被按下过
  85.         {
  86.                 LED3_TOGGLE;
  87.                 Key_AccessTimes(&Key2,KEY_ACCESS_WRITE_CLEAR);
  88.         }
  89. }

  90. /*
  91. *********************************************************************************************************
  92. *                                          STARTUP TASK
  93. *
  94. * Description : This is an example of a startup task.  As mentioned in the book's text, you MUST
  95. *               initialize the ticker only once multitasking has started.
  96. *
  97. * Arguments   : p_arg   is the argument passed to 'AppTaskStart()' by 'OSTaskCreate()'.
  98. *
  99. * Returns     : none
  100. *
  101. * Notes       : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
  102. *                  used.  The compiler should not generate any code for this statement.
  103. *********************************************************************************************************
  104. */

  105. static  void  AppTaskStart (void *p_arg)
  106. {

  107.         OS_ERR      err;
  108. (void)p_arg;

  109.         BSP_Init();                                                 /* Initialize BSP functions                             */
  110.         CPU_Init();                                                 /* Initialize the uC/CPU services                       */

  111. #if OS_CFG_STAT_TASK_EN > 0u
  112.         OSStatTaskCPUUsageInit(&err);                               /* Compute CPU capacity with no task running            */
  113. #endif

  114. #ifdef CPU_CFG_INT_DIS_MEAS_EN
  115.         CPU_IntDisMeasMaxCurReset();
  116. #endif

  117. #if (APP_CFG_SERIAL_EN == DEF_ENABLED)
  118.         APP_TRACE_DBG(("Creating Application kernel objects\n\r"));
  119. #endif       
  120.         AppObjCreate();
  121. /* Create Applicaiton kernel objects                    */
  122. #if (APP_CFG_SERIAL_EN == DEF_ENABLED)
  123.         APP_TRACE_DBG(("Creating Application Tasks\n\r"));
  124. #endif       
  125.         AppTaskCreate();                                            /* Create Application tasks                             */

  126.        
  127.         while (DEF_TRUE)
  128.         {                                          /* Task body, always written as an infinite loop.       */
  129.     inputscan();
  130.                 OSTimeDlyHMSM(0u, 0u, 0u, 20u,
  131.                                                                         OS_OPT_TIME_HMSM_STRICT,
  132.                                                                         &err);
  133.         }
  134. }

  135. /*
  136. *********************************************************************************************************
  137. *                                          AppTaskCreate()
  138. *
  139. * Description : Create Application Tasks.
  140. *
  141. * Argument(s) : none
  142. *
  143. * Return(s)   : none
  144. *
  145. * Caller(s)   : AppTaskStart()
  146. *
  147. * Note(s)     : none.
  148. *********************************************************************************************************
  149. */

  150. static  void  AppTaskCreate (void)
  151. {
  152.         OS_ERR  os_err;

  153.         /* ---------- CREATE KERNEL OBJECTS TEST TASK --------- */
  154.         OSTaskCreate((OS_TCB       *)&AppTaskObj0TCB,
  155.                (CPU_CHAR     *)"Kernel Objects Task 0",
  156.                (OS_TASK_PTR   )AppTaskObj0,
  157.                (void         *)0,
  158.                (OS_PRIO       )APP_CFG_TASK_OBJ0_PRIO,
  159.                (CPU_STK      *)&AppTaskObj0Stk[0],
  160.                (CPU_STK_SIZE  )AppTaskObj0Stk[APP_CFG_TASK_OBJ0_STK_SIZE / 10u],
  161.                (CPU_STK_SIZE  )APP_CFG_TASK_OBJ0_STK_SIZE,
  162.                (OS_MSG_QTY    )0u,
  163.                (OS_TICK       )0u,
  164.                (void         *)0,
  165.                (OS_OPT        )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
  166.                (OS_ERR       *)&os_err);
  167.   OSTaskCreate((OS_TCB       *)&AppTaskGUITCB,
  168.                (CPU_CHAR     *)"Kernel Objects Task 0",
  169.                (OS_TASK_PTR   )AppTaskGUI,
  170.                (void         *)0,
  171.                (OS_PRIO       )APP_CFG_TASK_GUI_PRIO,
  172.                (CPU_STK      *)&AppTaskGUIStk[0],
  173.                (CPU_STK_SIZE  )AppTaskGUIStk[APP_CFG_TASK_GUI_STK_SIZE / 10u],
  174.                (CPU_STK_SIZE  )APP_CFG_TASK_GUI_STK_SIZE,
  175.                (OS_MSG_QTY    )0u,
  176.                (OS_TICK       )0u,
  177.                (void         *)0,
  178.                (OS_OPT        )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
  179.                (OS_ERR       *)&os_err);
  180. }


  181. /*
  182. *********************************************************************************************************
  183. *                                          AppObjCreate()
  184. *
  185. * Description : Create Application Kernel Objects.
  186. *
  187. * Argument(s) : none
  188. *
  189. * Return(s)   : none
  190. *
  191. * Caller(s)   : AppTaskStart()
  192. *
  193. * Note(s)     : none.
  194. *********************************************************************************************************
  195. */
  196. static  void  AppObjCreate (void)
  197. {
  198.   KeyCreate(&Key1,GetPinStateOfKey1);
  199.         KeyCreate(&Key2,GetPinStateOfKey2);
  200. }
  201. /*
  202. *********************************************************************************************************
  203. *                                          AppTaskObj0()
  204. *
  205. * Description : Test uC/OS-III objects.
  206. *
  207. * Argument(s) : p_arg is the argument passed to 'AppTaskObj0' by 'OSTaskCreate()'.
  208. *
  209. * Return(s)   : none
  210. *
  211. * Caller(s)   : This is a task
  212. *
  213. * Note(s)     : none.
  214. *********************************************************************************************************
  215. */

  216. static  void  AppTaskObj0 (void  *p_arg)
  217. {
  218.   OS_ERR      err;
  219.         static uint8_t tpad_count=0;
  220.         (void)p_arg;
  221.        
  222.         while(TPAD_Init())
  223.         {
  224.                 tpad_count++;
  225.                 if(tpad_count>=10)
  226.     {
  227.       bsp_result |= BSP_TPAD;
  228.       break;
  229.                 }
  230.      bsp_DelayUS(1000);
  231.         }       
  232.        
  233.         while(1)
  234.         {       
  235.                 if((tpad_count<10)&&TPAD_Scan(0))
  236.                 {
  237.                         BEEP_ON;
  238.       if(UserApp_Flag)tpad_flag=1;
  239.                 }
  240.                 OSTimeDlyHMSM(0, 0, 0, 100,
  241.                       OS_OPT_TIME_HMSM_STRICT,
  242.                       &err);
  243.                 BEEP_OFF;
  244.         }   
  245. }

  246. /**************  板载错误   ***************/
  247. void hardwareerr(void)
  248. {
  249.         OS_ERR  err;
  250.   printf("bsp_result->(0x%04X)\n",bsp_result);
  251.   if((bsp_result&(~BSP_NETWORK))==0) return;
  252.   if(!((bsp_result&BSP_SDRAM)||(bsp_result&BSP_GUI)))
  253.   {
  254.     char tempstr[20];
  255.     sprintf(tempstr,"error->(0x%04X)",bsp_result);
  256.     GUI_Clear();
  257.     GUI_SetColor(GUI_RED);
  258.     GUI_SetFont(GUI_FONT_24_ASCII);
  259.                 GUI_DispStringHCenterAt(tempstr, 400,120);
  260.    
  261.     LCD_BL_ON();
  262.   }
  263.   while(1)
  264.   {
  265.     printf("bsp_result->(0x%04X)\n",bsp_result);
  266.     LED1_ON;//BEEP_ON;
  267.     OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_HMSM_STRICT,&err);
  268.     LED1_OFF;//BEEP_OFF;       
  269.     OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_HMSM_STRICT,&err);
  270.   }
  271. }

  272. /*
  273. *********************************************************************************************************
  274. *                                          AppTaskObj1()
  275. *
  276. * Description : Test uC/OS-III objects.
  277. *
  278. * Argument(s) : p_arg is the argument passed to 'AppTaskObj1' by 'OSTaskCreate()'.
  279. *
  280. * Return(s)   : none
  281. *
  282. * Caller(s)   : This is a task
  283. *
  284. * Note(s)     : none.
  285. *********************************************************************************************************
  286. */
  287. static  void  AppTaskGUI (void  *p_arg)
  288. {
  289.   (void)p_arg;
  290.   if(bsp_result!=BSP_OK)
  291.         {
  292.                 hardwareerr();
  293.         }
  294.   while(1)
  295.   {
  296.     emWinMainApp();
  297.   }
  298. }

  299. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
复制代码

所有资料51hei提供下载:
33. uCOSIII_emWin528_Demo(光敏电阻).7z (3.09 MB, 下载次数: 39)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表