找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8315|回復(fù): 8
收起左側(cè)

stm32如何發(fā)送數(shù)據(jù)到串口屏

[復(fù)制鏈接]
ID:478875 發(fā)表于 2019-3-4 20:40 | 顯示全部樓層 |閱讀模式
現(xiàn)在有TJC4024T032_011串口屏一個,現(xiàn)在想通過STM32發(fā)送一個檢測到的一個數(shù)據(jù)到該串口屏,請問該如何實現(xiàn)。

回復(fù)

使用道具 舉報

ID:158375 發(fā)表于 2019-3-5 09:45 | 顯示全部樓層
STM32串口與串口屏通過串口連接。
根據(jù)通訊協(xié)議,STM32串口直接發(fā)送數(shù)據(jù)就可以了。
注意:通訊協(xié)議
回復(fù)

使用道具 舉報

ID:478875 發(fā)表于 2019-3-5 10:40 | 顯示全部樓層
笨笨兔 發(fā)表于 2019-3-5 09:45
STM32串口與串口屏通過串口連接。
根據(jù)通訊協(xié)議,STM32串口直接發(fā)送數(shù)據(jù)就可以了。
注意:通訊協(xié)議

協(xié)議就是stm32發(fā)送FF FF FF結(jié)尾的數(shù)據(jù)表示發(fā)送結(jié)束,F(xiàn)在有兩個問題,就是發(fā)送格式是t0.txt="顯示的內(nèi)容",然后printf里面也要用到“”“,我用的轉(zhuǎn)義符號,不知道行不行,然后就是FF FF FF 第一次發(fā)送的是字符串,是這樣的printf("0xff"),第二次是發(fā)送的printf("%d",0xff),都沒接收到信息
回復(fù)

使用道具 舉報

ID:158375 發(fā)表于 2019-3-5 12:47 | 顯示全部樓層
大概看了下TJC4024T032_011串口屏介紹,我覺得你應(yīng)該仔細研究通訊協(xié)議。
回復(fù)

使用道具 舉報

ID:478875 發(fā)表于 2019-3-5 13:11 | 顯示全部樓層
笨笨兔 發(fā)表于 2019-3-5 09:45
STM32串口與串口屏通過串口連接。
根據(jù)通訊協(xié)議,STM32串口直接發(fā)送數(shù)據(jù)就可以了。
注意:通訊協(xié)議

%d和%x都試過了
回復(fù)

使用道具 舉報

ID:478875 發(fā)表于 2019-3-5 19:00 | 顯示全部樓層
還不能發(fā)送變量,只能發(fā)送已經(jīng)決定好的文字或者數(shù)字以及系統(tǒng)變量
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"

  6. u8 idfind(u8 *buf,u8 *val,u8 len);
  7. void HMISends(char *buf1);
  8. void HMISendb(u8 buf);


  9. void HMISendstart(void)
  10. {
  11.         delay_ms(200);
  12.         HMISendb(0xff);
  13.         delay_ms(200);
  14. }

  15. int main(void)
  16. {               
  17.          short tempeature;
  18. //          u8 t;
  19. //         u8 len;
  20. //         extern u8 Res;
  21. //         u16 times=0;

  22.         u8 t;
  23.         delay_init();                     //延時函數(shù)初始化         
  24.         NVIC_Configuration();          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  25.         uart_init(9600);         //串口初始化為9600
  26.          LED_Init();                             //LED端口初始化
  27.         KEY_Init();          //初始化與按鍵連接的硬件接口
  28.         HMISendstart();
  29.         tempeature=115;
  30.          while(1)
  31.         {
  32.                 t=KEY_Scan(0);                //得到鍵值
  33.                    if(t)
  34.                 {                                                   
  35.                         switch(t)
  36.                         {                                 
  37.                                 case KEY_UP:        //控制蜂鳴器
  38.                                 HMISends("n0.val=baud");
  39.         HMISendb(0xff);                                
  40. //                                         printf("t0.txt=\"sdfsdf\"");
  41. //           USART_SendData(USART1,0xff);
  42. //                                   USART_SendData(USART1,0xff);
  43. //                                   USART_SendData(USART1,0xff);
  44.                                         break;
  45. //                                 case KEY_LEFT:        //控制LED0翻轉(zhuǎn)
  46. //                                         printf("t0.txt=\"sdfsdf\"");
  47. //           printf("%d",0xff);
  48. //                                   printf("%d",0xff);
  49. //                                   printf("%d",0xff);
  50. //                                         break;
  51.                                 case KEY_DOWN:        //控制LED1翻轉(zhuǎn)        
  52.                                 HMISends("n0.val=123");
  53.         HMISendb(0xff);        
  54. //                                         printf("t0.txt=\"sdfs46s54df65\"");
  55. //           printf("%d",0xff);
  56. //                                   printf("%d",0xff);
  57. //                                   printf("%d",0xff);
  58.                                         break;
  59. //                                 case KEY_RIGHT:        //同時控制LED0,LED1翻轉(zhuǎn)
  60. //                                         printf("t0.txt=\"a5sd4fa35sd4f\"");
  61. //           printf("%d",0xff);
  62. //                                   printf("%d",0xff);
  63. //                                   printf("%d",0xff);
  64. //                                         break;
  65.                         }
  66.                 }else delay_ms(10);
  67.                
  68.                
  69. //{}內(nèi)的switch語句的主題,內(nèi)含多個case分支,判斷值必須是一常亮(代表一具體整數(shù))        case分支根據(jù)判斷值標識條件選擇入口
  70. //0x0d是回車符的ASC||碼
  71. //0x0a是換行結(jié)束符的ASC||碼
  72. }
  73. }

  74. void HMISends(char *buf1)
  75. {
  76.         u8 a=0;
  77.         while(1)
  78.         {
  79.                 if(buf1[a]!=0)
  80.                 {
  81.                         USART_SendData(USART1,buf1[a]);
  82.                         while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};
  83.                         a++;        
  84.                 }
  85.                 else
  86.                 return ;
  87.         }
  88. }

  89. void HMISendb(u8 k)
  90. {
  91.         u8 a;
  92.         for(a=0;a<3;a++)
  93.         {
  94.                 if(k!=0)
  95.                  {
  96.                         USART_SendData(USART1,k);  //發(fā)送一個字節(jié)
  97.                         while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};//等待發(fā)送結(jié)束
  98.                 }
  99.          else
  100.          return ;
  101.         }
  102. }
復(fù)制代碼


能發(fā)送數(shù)字及波特率.7z

180.77 KB, 下載次數(shù): 94

回復(fù)

使用道具 舉報

ID:478875 發(fā)表于 2019-3-5 19:22 | 顯示全部樓層
笨笨兔 發(fā)表于 2019-3-5 12:47
大概看了下TJC4024T032_011串口屏介紹,我覺得你應(yīng)該仔細研究通訊協(xié)議。

請問怎么發(fā)送變量呢?
回復(fù)

使用道具 舉報

ID:142559 發(fā)表于 2023-2-8 09:32 | 顯示全部樓層
先用串口助手調(diào)試,這一步主要把串口屏的通信協(xié)議搞清楚(起始、控件標號、操作指令、結(jié)束等組成的指令);
回復(fù)

使用道具 舉報

ID:142559 發(fā)表于 2023-2-8 09:34 | 顯示全部樓層
先直接用串口助手調(diào)試串口屏,這一步是搞清楚協(xié)議內(nèi)容(起始、控件、操作、結(jié)束等組成的一個指令)。能操作的話就直接用32單片機串口發(fā)送控制數(shù)據(jù)就OK了。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表