淘晶驰串口屏通过单片机点亮小灯

淘晶驰串口屏通过单片机点亮小灯,买了块淘晶驰的串口屏,由单片机向串口屏发送实时的数据可以实现了,但通过串口屏设定参数发送给单片机怎么也实现不了 就像先试试通过串口屏发送00给单片机…

淘晶驰串口屏通过单片机点亮小灯,买了块淘晶驰的串口屏,由单片机向串口屏发送实时的数据可以实现了,但通过串口屏设定参数发送给单片机怎么也实现不了
就像先试试通过串口屏发送00给单片机点亮小灯,但始终无法点亮
一开始想通过VSPD添加了com5和com6两个虚拟串口然后用sscom监视com6口有没有收到数据事实上确实受到了00
求大佬指点为什么受到了00却不能点亮小灯
(RX和TX接对的)

  1. #include <REG51.H>         
  2. #include <intrins.h>
  3. #include <absacc.h>
  4. #include <stdio.h>
  5. #include <math.h>
  6. #include <string.h>
  7. #include “uart.h”
  8. sfr P3M0 =0xb1;
  9. sfr P3M1 =0xb2;
  10. #define uchar unsigned char
  11. #define uint unsigned int
  12. sbit led=P1^4;
  13. void UART_Send_Byte(unsigned char mydata)        // 发送一个字节
  14. {
  15. ES=0;
  16. TI=0;
  17. SBUF=mydata;
  18. while(!TI);
  19. TI=0;
  20. ES=1;
  21. }
  22. void UART_Send_Str(char *s)          //发送文本串
  23. {
  24. int i=0;
  25. while(s[i]!=0)
  26. {
  27.          UART_Send_Byte(s[i]);
  28.          i++;
  29. }
  30. }
  31. void UART_Send_END(void)   //发送结束符
  32. {
  33.          UART_Send_Byte(0xFF);
  34.          UART_Send_Byte(0xFF);
  35.          UART_Send_Byte(0xFF);
  36. }
  37. void delay(uint z)                  //延时
  38. {
  39.         uint t1,y;
  40.         for(t1=z;t1>0;t1–)
  41.                 for(y=110;y>0;y–);
  42. }
  43. void USART_init()
  44. {
  45.         PCON &= 0x7F;                //波特率不倍速
  46.         SCON = 0x50;                //8位数据,可变波特率
  47.         TMOD &= 0x0F;                //清除定时器1模式位
  48.         TMOD |= 0x20;                //设定定时器1为8位自动重装方式
  49.         TL1 = 0xFD;                //设定定时初值
  50.         TH1 = 0xFD;                //设定定时器重装值
  51.         ET1 = 0;                //禁止定时器1中断
  52.         TR1 = 1;                //启动定时器1
  53. ES=1;
  54. EA=1;
  55. }
  56. void UARTInterrupt(void) interrupt 4
  57. {
  58.     if(RI)
  59.     {
  60.         RI = 0;
  61.           led=SBUF;
  62.     }
  63. }
  64. void main (void)
  65. {
  66.                 //单片机为  STC89C52
  67.                 //晶振 11.0592
  68.                
  69.                  USART_init();
  70.    
  71.          }

复制代码

,实物图
,这句 led=SBUF;不能直接赋十六进制的值,可以改成P1=SBUF;你这个串口没问题。,

zhanghyg 发表于 2020-4-25 13:42

这句 led=SBUF;不能直接赋十六进制的值,可以改成P1=SBUF;你这个串口没问题。

大哥改了之后还是不行,大佬,怎么实现单片机发送数据给串口屏

作者: soufei

为您推荐


Fatal error: Can't use function return value in write context in /www/wwwroot/www.qianrushi.com.cn/wp-content/themes/news/footer.php on line 115