|
因为需要用ADC所有这次用了STC8H3K32S2 20脚的 调试串口的时候很奇怪 我发0x44 电脑却接收到的是0x60 0xFE 定时器1和2都试了 不行 STC8H1K08 20脚 的一样的程序是正常的 无语了 来位大佬帮看看
#include "STC8H.H"
#define MAIN_Fosc 12000000UL //define main clock
#define Timer0_Reload (65536UL -(MAIN_Fosc / 100)) //Timer 0 intrrrupt, 100/s
#define BRT1152 (65536UL -(MAIN_Fosc / 115200/4))
#define BRT576 (65536UL -(MAIN_Fosc / 57600/4))
#define BRT384 (65536UL -(MAIN_Fosc / 38400/4))
#define BRT9600 (65536UL -(MAIN_Fosc / 9600/4))
void UART1_init(void)
{
P3M0 |=0x02; //P31, TXD
P3M1 &=~0x02;
TXD= 1;
P3M1 |=0x01; //P30, RXD
P3M0 &=~0x01;
P_SW2|=0X80;
P_SW1 = 0x00; //set
SCON = 0x50;
T2L = BRT9600;
T2H = BRT9600 >> 8;
AUXR |= 0x15; //timer2 1T mode, and start timer2
ES=1; //ENABLE uart1 interrupt
}
void UART1_send(unsigned char dat) // Uart1
{
SBUF=dat;
while(!TI);
TI=0; // Clear TX flag
}
void main()
{
init();
LED_B = 0;
LED_G = 0;
LED_R = 0;
LED_Y = 0;
delay_ms(500);
LED_G = 1;
LED_R = 1;
LED_Y = 1;
UART1_init();
delay_ms(100);
while (1)
{
LED_Y = 0;
UART1_send(0x44);
delay_ms(100);
LED_Y = 1;
delay_ms(100);
}
}
|
|