欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機串口控制燈沒反應,程序和電路應該沒問題 求指導 [打印本頁]

作者: shxxlgg1    時間: 2020-4-14 12:34
標題: 單片機串口控制燈沒反應,程序和電路應該沒問題 求指導
程序和電路應該沒問題但為何沒反應

單片機源程序如下:
  1. #include "reg52.h"
  2. #include "uart.h"
  3. void LED_OFF(u8 char_num) //關閉LED
  4. {
  5.         switch(char_num)//對象碼
  6.         {
  7.                  case '1':               
  8.                          P1|=1<<0;
  9.                          UART_SendStr("LED1_OFF \r\n");
  10.                  break;
  11.                  case '2':               
  12.                          P1|=1<<1;
  13.                          UART_SendStr("LED2_OFF \r\n");
  14.                  break;
  15.                  case '3':               
  16.                          P1|=1<<2;
  17.                          UART_SendStr("LED3_OFF \r\n");
  18.                  break;
  19.                  case '4':               
  20.                          P1|=1<<3;
  21.                          UART_SendStr("LED4_OFF \r\n");
  22.                  break;
  23.                  case '5':               
  24.                          P1|=1<<4;
  25.                          UART_SendStr("LED5_OFF \r\n");
  26.                  break;
  27.                  case '6':               
  28.                          P1|=1<<5;
  29.                          UART_SendStr("LED6_OFF \r\n");
  30.                  break;
  31.                  case '7':               
  32.                          P1|=1<<6;
  33.                          UART_SendStr("LED7_OFF \r\n");
  34.                  break;
  35.                  case '8':               
  36.                          P1|=1<<7;
  37.                          UART_SendStr("LED8_OFF \r\n");
  38.                  break;               
  39.   }
  40. }
  41. void LED_ON(u8 char_num) //打開LED
  42. {
  43.         switch(char_num)//對象碼
  44.         {
  45.                  case '1':               
  46.                          P1&=~(1<<0);
  47.                          UART_SendStr("LED1_ON \r\n");
  48.                  break;
  49.                  case '2':               
  50.                          P1&=~(1<<1);
  51.                          UART_SendStr("LED2_ON \r\n");
  52.                  break;
  53.                  case '3':               
  54.                          P1&=~(1<<2);
  55.                          UART_SendStr("LED3_ON \r\n");
  56.                  break;
  57.                  case '4':               
  58.                          P1&=~(1<<3);
  59.                          UART_SendStr("LED4_ON \r\n");
  60.                  break;
  61.                  case '5':               
  62.                          P1&=~(1<<4);
  63.                          UART_SendStr("LED5_ON \r\n");
  64.                  break;
  65.                  case '6':               
  66.                          P1&=~(1<<5);
  67.                          UART_SendStr("LED6_ON \r\n");
  68.                  break;
  69.                  case '7':               
  70.                          P1&=~(1<<6);
  71.                          UART_SendStr("LED7_ON \r\n");
  72.                  break;
  73.                  case '8':               
  74.                          P1&=~(1<<7);
  75.                          UART_SendStr("LED8/ON \r\n");
  76.                  break;               
  77.   }
  78. }

  79. /*指令說明:
  80. *發送 001  關閉LED  (001表示:分類碼='0',功能碼='0',對象碼='1' ,分類碼='0'表示LED控制類,功能碼'0'表示關閉LED,對象碼'1'表示第1個LED)
  81. *發送 011  打開LED  (011表示:分類碼='0',功能碼='1',對象碼='1' ,分類碼='0'表示LED控制類,功能碼'1'表示打開LED,對象碼'1'表示第1個LED)

  82. *無結束符,適用于固定長度的指令,本工程設計為固定長度為2個字符的指令
  83. *第一個字符表示類別碼,即是什么分類
  84. *第二個字符代表功能碼,即是什么功能
  85. *第三個字符代表對象碼,即是什么對象
  86. *可以修改長度來增減指令長度,獲得更多嵌套層數功能控制。
  87. */
  88. void main(void) //主函數掃描方式
  89. {
  90.   UART_Configure(9600);//配置9600波特率(默認無奇偶校驗,1位停止位,8位數據位)
  91.         while(1)
  92.         {
  93.                 if(Uart.RX_COUNT>=3) //判斷串口是否接收到3個以上數據,修改此處的數據可改變指令長度
  94.                 {
  95.                          switch(Uart.RX_BUFF[0]) //類別碼
  96.                          {
  97.                                  case '0': //LED控制類
  98.                                          switch(Uart.RX_BUFF[1]) //功能碼
  99.                                          {
  100.                                                  case '0':  //功能碼0 :關閉LED
  101.                                                                         LED_OFF(Uart.RX_BUFF[2]);//將對象碼輸入函數中
  102.                                                  break;               
  103.                                                  case '1':  //功能碼1 :打開LED  
  104.                                                                         LED_ON(Uart.RX_BUFF[2]);//將對象碼輸入函數中
  105.                                                  break;                                         
  106.                                          }
  107.                                  break;
  108.                                  case '1': //其他類

  109.                                  break;
  110.                                  case '2': //其他類

  111.                                  break;                                  
  112.                          }                                 
  113.                          
  114.                          //清除數據必須在處理代碼后面
  115.                          Uart.RX_COUNT=0;  //緩存計數清0
  116.                          UART_RX_BUFF_Clear();//清除接收緩存
  117.                 }
  118.         }
  119. }
復制代碼

51hei圖片20200416125512.jpg (309.61 KB, 下載次數: 109)

51hei圖片20200416125512.jpg

新建 ZIP 壓縮文件.zip

39.5 KB, 下載次數: 5


作者: 權威人物    時間: 2020-4-14 17:49
串口之間怎么通信的?你這個是字符,看看通信直接以什么方式的,還有你的圖片好難看




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1