微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么C8051F120单个16进制数 发送正常,一串16进制数发送就全部出错了呢?求大神解惑

为什么C8051F120单个16进制数 发送正常,一串16进制数发送就全部出错了呢?求大神解惑

时间:10-02 整理:3721RD 点击:
#include<c8051f120.h>
#define  uchar unsigned char
                                                                                                 
#define systemclock  24500000
#define baudrate          115200
sbit P0_6=P0^6;
sbit P2_3=P2^3;
uchar code tab[]="0x52,0x20,0x30,0xAA,0x05";


void OSCILLATOR_init()
{
   int i;
   char SFRPAGE_SAVE=SFRPAGE;
   SFRPAGE=CONFIG_PAGE;
   OSCICN=0x83;
   /*OSCXCN=0x67;
   for (i = 0; i < 256; i++);
   while (!(OSCXCN & 0x80));*/
   SFRPAGE=LEGACY_PAGE;
   FLSCL|=0x30;
   if(systemclock<=25000000)
   {
      FLSCL&=~0x30;
   }
   else if(systemclock<=50000000)
   {
             FLSCL&=~0x20;
   }
   else if(systemclock<=75000000)
   {
             FLSCL&=~0x10;
   }
   else
   {
             FLSCL&=~0x00;
   }
   SFRPAGE = CONFIG_PAGE;
   CLKSEL=0x00;
   SFRPAGE = SFRPAGE_SAVE;
}

void port_init()
{
   char SFRPAGE_SAVE=SFRPAGE;
   SFRPAGE=CONFIG_PAGE;
   XBR0=0x04;
   XBR1=0x80;
   XBR2=0x44;
   P0MDOUT=0xf5;
   P1MDOUT=0xff;
   P2MDOUT=0xff;
   P3MDOUT=0xff;
   SFRPAGE = SFRPAGE_SAVE;
}

void uart1_init()
{
   char SFRPAGE_SAVE=SFRPAGE;
   SFRPAGE=TIMER01_PAGE;
   TCON=0x00;
   TMOD=0x20;
   CKCON=0x10;
   TL1=256-(systemclock/(2*baudrate));
   TH1=256-(systemclock/(2*baudrate));
   TR1=1;
   SFRPAGE=SFRPAGE_SAVE;

   SFRPAGE=UART1_PAGE;
   SCON1=0x00;
   TI1=0;
   SFRPAGE = SFRPAGE_SAVE;
}
void senddata(unsigned char i)
{  
   char SFRPAGE_SAVE=SFRPAGE;
   SFRPAGE = UART1_PAGE;
   P0_6=1;
   SBUF1=i;
   while(TI1==0);
   TI1=0;
   P0_6=0;
   SFRPAGE = SFRPAGE_SAVE;
}
void main()
{
  char SFRPAGE_SAVE = SFRPAGE;
  int x,t=0;
  SFRPAGE = CONFIG_PAGE;
  WDTCN=0xde;
  WDTCN=0xad;
  OSCILLATOR_init();
  port_init();
  uart1_init();         
  EA=1;
  SFRPAGE = SFRPAGE_SAVE;
  for(t=0;t<5;t++)
   {

    senddata(tab[t]);
    for(x=0;x<4;x++);
       
  }         
}
收到的数据

全部有规律 但是不正确


字符串的结束标志是“\0”;而不是“0”,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top