我用STVD STM8S103F3P6芯片
oid UART1_init(void)
{
UART1_CR1 = 0x00;
UART1_CR3 = 0x00;
UART1_BRR2 = 0x05; // 设置波特率9600 01
UART1_BRR1 = 0x11; // 8M/9600 = 0x341 34
UART1_CR2 = 0x2C; // 允许接收中断,允许接收,允许发送
}
@far @interrupt void UART1_Recv_int(void)
{
UART1_SR=0;
RxBuffer=UART1_DR;
while (!(UART1_SR & 0x20));
if(RxBuffer==59)//遇到分号为结尾
{
rxok=1;
UART1_CR2&=0xfb;
Delays(10);
}
return;
}
主程序main()
while (1)
{
if(rxok==1)
{
delay500(10);
}
}
调试时候:从PC发送;到STM8后 STM8执行完中断服务子程序后,rxok=1,但跳回主程序后,就发现rxok自动变成0了 |