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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2429|回復: 1
收起左側

屏廠客戶LCD9325參考STM32源代碼

[復制鏈接]
ID:347628 發表于 2018-7-4 11:15 | 顯示全部樓層 |閱讀模式
屏廠客戶LCD9325參考代碼
0.png

單片機源程序如下:
  1. #include <stm32f10x_lib.h>
  2. #include "stdinc.h"
  3. #include "sys.h"       
  4. #include "led.h"
  5. #include "key.h"
  6. #include "wdg.h"
  7. #include "TFT.h"
  8. #include "touch.h"
  9. #include "picture.h"                   
  10. #include "ui.h"
  11. #include "config.h"
  12. #include "sysserv.h"
  13. #include "TFT_Init.h"
  14. #include "ParamMgr.h"
  15. #include "DMX.h"
  16. #include "PCBATest.h"

  17.                   
  18. /**********************************************************************/
  19. //        DSP-A
  20. //        2016.9.28
  21. //
  22. /**********************************************************************/

  23. INT8U               GucMsg;
  24. INT8U                   GucTmr1Cnt = 0;
  25. BOOL                                GbTmr1MSSyncSig = FALSE;

  26. extern  INT8U       GucDMXCableValid;
  27. extern  BOOL        GbMaterSend;
  28. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
  29. void SysTimerInit (void);
  30. void sysSuspendForSync (void);
  31. void Timerx_Init (void);
  32. void sysInit (void);

  33. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  34. #define T_10MS      0
  35. #define T_20MS      1
  36. #define T_200MS     2
  37. #define T_500MS     3

  38. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  39. int main(void)
  40. {          
  41.     INT8U            ucParam;
  42.     INT8U            ucKey;
  43.     static INT8U     ucDlyS = 0;
  44.    
  45.     sysInit();
  46.    
  47.     SetTimer(T_10MS, 10);
  48.     SetTimer(T_20MS, 20);
  49.     SetTimer(T_200MS, 200);
  50.     SetTimer(T_500MS, 1000);
  51.    
  52.     GetLockCode();
  53.    
  54.         while(1)
  55.         {       
  56.                 sysSuspendForSync();
  57.                
  58.         if (GbTmr1MSSyncSig)
  59.         {
  60.             GbTmr1MSSyncSig = FALSE;
  61.             
  62.             SoftTimer1mSec();
  63.             
  64.             AudioDetect();
  65.          
  66.             CodingSwitch();            
  67.         }
  68.         
  69.         
  70.         GucMsg = GetMessage(&ucParam);
  71.         switch (GucMsg)
  72.         {
  73.         case MSG_TIMEOUT:
  74.             switch (ucParam)
  75.             {
  76.             case T_10MS:
  77.                 if (GbMaterSend) // (PARAM(TEST_MASTER))                                                                     //        if I'm configed as master
  78.                 {
  79.                     RS485_AS_OUTPUT();                                                                //  Set DMX as output to output data
  80.                     UART_RXD_DISABLE();
  81.                     if(ucDlyS > 2)
  82.                     {
  83.                         ucDlyS = 0;
  84.                         DMXSend();                        
  85.                     }
  86.                     ucDlyS++;  
  87.                 }
  88.                 else
  89.                 {
  90.                     UART_RXD_ENABLE();
  91.                     RS485_AS_INPUT();                                                                    //        Set DMX as input, release RS485 bus
  92.                 }
  93.                
  94.                 ParamUpdateRoutine();
  95.                 break;
  96.             
  97.             case T_20MS:  
  98.             
  99.                 ucKey = KeyScan();
  100.                 //KeyHandle(ucKey);
  101.                   
  102.                 uiRoutine(ucKey);
  103.             
  104.                 GbDMXUpdate = TRUE;
  105.                 break;
  106.             
  107.             case T_200MS:
  108.                  //  Deal DMX cable active status
  109.                 if (GucDMXCableValid != 0)              //  DMX Cable is inserted and valid.
  110.                 {
  111.                     GucDMXCableValid--;
  112.                 }
  113.                
  114.                 LedRoutine();
  115.             
  116.                 TestDataRxRoutine();
  117.                 TestDataTxRoutine();
  118.                 break;
  119.             
  120.             case T_500MS:
  121.                 ParamResetRoutine();
  122.             
  123.               
  124.                 PCBtestRoutine();
  125.                 break;
  126.             
  127.             default:
  128.                 break;
  129.             }
  130.             break;
  131.    
  132.         default:
  133.             break;
  134.         }
  135.         
  136.         DMXSendRoutine();
  137.         }
  138. }


  139. void sysInit (void)
  140. {
  141.     Stm32_Clock_Init(6); //系統時鐘設置

  142.     SysTimerInit();
  143.    
  144.     Timerx_Init();
  145.    
  146.     SoftTimerInit();
  147.     MsgQueueInit();
  148.    
  149.         LCD_Init();                        // 初始化液晶                  

  150.     Touch_Init();
  151.      
  152.         uiInit();
  153.    
  154.     dmxInit();
  155.    
  156.     uartInit();

  157.     PCB_TestInit();
  158.         //IWDG_Init(1,0xfff);
  159. }


  160. void sysSuspendForSync (void)
  161. {
  162.     IWDG_Feed();
  163.     while (GucTmr1Cnt < 8)
  164.     {
  165.         IWDG_Feed();                                                                 //        feed watch dog
  166.         if (GucTmr1Cnt >= 6)
  167.             continue;
  168.             
  169.         //stpPosFeedback();
  170.     }

  171.     ENTER_CRITICAL();
  172.     GucTmr1Cnt -= 8;
  173.     EXIT_CRITICAL();
  174.   
  175.    
  176.     //lcdBufUpdate();
  177. }


  178. void SysTimerInit (void)
  179. {
  180.     SysTick->CTRL |= (1<<1)|(1<<2);
  181.     SysTick->LOAD = 749;           //  31.25us tick, 749 = (31.25 * 24MHz) - 1

  182.     SysTick->CTRL |= (1<<0);
  183. }


  184. void Timerx_Init (void)      //  1MS sync signal, avoid 31.25 tick loss
  185. {   
  186.     RCC->APB1ENR |= (1<<4);
  187.     TIM6->ARR = 24000-1;          //1000us
  188.     TIM6->PSC = 0;
  189.     TIM6->CR1 |= (1<<0);
  190. }


  191. INT16S                   GiSlvSyncTick = 0;
  192. INT16S                   GiSlvSyncDelta = 0;
  193. INT16U                   GuiUpdateSysCnt = 0;
  194. #pragma optimize = speed
  195. void SysTick_Handler (void)  // 31.25us
  196. {   
  197.     static INT8U    ch = 0;
  198.    
  199.    
  200. SYS_TMR:
  201.     if (GiSlvSyncDelta < -5)
  202.     {
  203.         GiSlvSyncDelta++;
  204.         return;
  205.     }
  206.    
  207.         GucTmr1Cnt++;
  208.    
  209.         GiSlvSyncTick++;
  210.             
  211. ……………………

  212. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
屏廠客戶LCD9325參考代碼.rar (624.14 KB, 下載次數: 10)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:222956 發表于 2019-3-30 15:10 | 顯示全部樓層
謝謝,樓主
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产黄色在线观看 | 国产精品日韩一区二区 | 午夜爽爽爽男女免费观看 | 久久精品视频在线观看 | 成人精品一区二区 | 日韩免费毛片视频 | 欧美日日日日bbbbb视频 | 国产九九精品 | 国产视频1区2区 | 成人久久视频 | 国产高清免费视频 | 国产精品久久久久无码av | 亚洲国产一区在线 | 亚洲精品免费在线观看 | 久久视频免费看 | av资源网站 | 一区二区三区av | 国产成人在线观看免费 | 毛片毛片毛片毛片 | 欧美一区二区精品 | 黄色大片毛片 | 欧美日韩亚洲一区 | 日批免费看 | 亚洲五码久久 | 亚洲欧美日韩精品久久亚洲区 | 亚洲 欧美 日韩 在线 | 国产精品免费看 | 欧美精品在线免费观看 | 久久久人成影片一区二区三区 | 久久蜜桃av一区二区天堂 | 56pao在线| 一区二区三区国产好 | 免费看欧美一级片 | 国产精品欧美一区二区 | 日韩精品免费视频 | 福利视频一区二区 | 在线观看精品 | 亚洲一区二区在线视频 | 欧产日产国产精品v | 久久精品亚洲精品国产欧美 | 亚洲国产欧美在线人成 |