我想要两颗西柚 发表于 7 天前

AI8051U 串口1 问题 | 已给完整参考例程

#include <AI8051U.H>
unsigned char xdata receive;//串口接收数组
unsigned char xdata sending;//串口发送数组
/*io口初始化*/
void IO_int()
{
      P0M0=0X00;P0M1=0X00;
      P1M0=0X00;P1M1=0X00;
      P2M0=0X00;P2M1=0X00;
      P3M0=0X00;P3M1=0X00;
}
/*---定时器二做波特率发生器----*/
void Uart1_Isr(void) interrupt 4
{
      if (RI)                              //检测串口1接收中断
      {
                RI = 0;                        //清除串口1接收中断请求位
      }
}


void Uart1_Init(void)      //4800bps@40.000MHz
{
      SCON = 0x50;                //8位数据,可变波特率
      AUXR |= 0x01;                //串口1选择定时器2为波特率发生器
      AUXR &= 0xFB;                //定时器时钟12T模式
      T2L = 0XD0;//(65535-208)%256;                        //设置定时初始值
      T2H = 0XFF;//(65535-208)/256;;                        //设置定时初始值
      AUXR |= 0x10;                //定时器2开始计时
      ES=1;
      //EA=1;
      
}

/*----串口发送一个字节*/
//void CK_sending(unsigned char dat)
//{
//      SBUF = dat;
//      while(TI==0);
//      TI=0;
//}
/*----串口发送一个字符串----*/
void CK_sendlong(unsigned char *set)
{
      while(*set!='\0')
      {
      SBUF = *set++;
      while(TI==0);
      TI=0;
      }
                //CK_sending(*set++);
}
void main()
{
         IO_int();
         Uart1_Init();
      while(1)
      {
      CK_sendlong("h");
      }
}
想问一下,为什么发送会乱码哎,找不到问题在哪?

国芯人工智能 发表于 7 天前

为了回答您的问题,我需要先明确您提到的具体问题是什么。然而,您提供的代码中并没有明确提到的“串口问题”,因此无法提供详细的回复。请提供您需要解决的具体问题,例如:

1. 串口连接的波特率设置:您是否在设置波特率(波特率发生器)时遇到了问题?
2. 时钟模式设置:您是否在配置串口时遇到了时钟模式(如4800bps和40000MHz)的问题?
3. 低时钟周期(LT)配置:您是否在串口发送时遇到了低时钟周期(LT)问题?
4. 串口连接的低时钟周期(LT)处理:您是否在串口连接中遇到了LT周期的配置问题?

如果您能提供具体的代码或问题描述,我可以为您详细解答。

[本文内容由国芯人工智能辅助生成,仅供参考]

神农鼎 发表于 7 天前







https://www.stcaimcu.com/forum.p ... id=15176&pid=166981




我想要两颗西柚 发表于 昨天 18:10

神农鼎 发表于 2025-6-22 17:22
https://www.stcaimcu.com/forum.p ... id=15176&pid=166981

解决啦,忘记改配置了要把4字节勾上

神农鼎 发表于 昨天 21:14





页: [1]
查看完整版本: AI8051U 串口1 问题 | 已给完整参考例程