我用的是C8051F040的片子.部分程序略:<br />问题是:写了中断接受函数好用,但发送发送的就是乱码????????为什么啊!!<br />程序代码如下:<br /><br />void UART0_Init (void)<br />{<br /> char SFRPAGE_SAVE = SFRPAGE;<br /> SFRPAGE = UART0_PAGE;<br /> SCON0 = 0X50;<br /> SCON0 &= 0xFC; //清中断标志<br /> SSTA0 = 0x10; //禁止UART0波特率2分频//SMOD0=1<br /> <br /> IE = 0x90; //开UART1中断<br /> <br /> SFRPAGE = TIMER01_PAGE;<br /> TMOD = 0x20; // TMOD: timer 1, mode 2, 8-bit reload<br /> CKCON = 0x10; //TIM=1<br /><br /> TH1 = 0x70;<br /> TL1 = TH1; // initialize Timer1<br /> TR1 = 1; // start Timer1<br /> <br /><br /> SFRPAGE = UART0_PAGE;<br /> TI0 = 1; <br /> // Indicate TX1 ready<br /> SFRPAGE = CONFIG_PAGE;<br /> CTRL = 0; //485收发控制<br /> SFRPAGE = SFRPAGE_SAVE; // Restore SFR page<br />}<br />//*************************************************************<br />//****************发送函数*************************************<br />//*************************************************************<br />void SendUART0(uchar PP) //发送<br />{<br /> EA = 0;<br /><br /> SFRPAGE = CONFIG_PAGE;<br /> CTRL = 1; //485发送控制<br /><br /> SFRPAGE=UART0_PAGE;<br /> SBUF0=PP;<br /> while(TI0==0);<br /> TI0 = 0;<br /> <br /><br /><br /> SFRPAGE = CONFIG_PAGE;<br /> CTRL = 0; <br /><br /> EA = 1;<br /><br />}<br /><br />void main (void) {<br /> UART0_Init ();EA = 1; <br /> SendUART0('A');<br /> wait_ms(100);//} |
|