STM8S105k6的串口有的时候发送数据发不出去
STMCU
2372 人阅读
|
0 人回复
|
2015-01-28
TA的每日心情 | 开心 2015-3-24 10:15 |
|---|
签到天数: 6 天 连续签到: 1 天 [LV.2]偶尔看看I
秀才
- 积分
- 209
|
各位高手好STM8S105k6的串口,刚开始可以发数据,和接收数据,但过一段时间串口发不出数据,我的串口配置如下:
/9600
void UART2_Init(void)
{
UART2_CR1=0x00; //定义字长
UART2_CR2=0x00;//TE为启动发送 REN为1启动接收
UART2_CR3=0x00; //定义停止位
UART2_BRR2=0x02;//波特率设置
UART2_BRR1=0x4e;//波特率设置
UART2_CR2=0x2c;
}
即波特率为9600,只采用串口接收中断,发送是查询方式,
程序如下:
void Send_ASCII(uchar *b)
{
//关串口中断
for (b; *b!='\0';b++)
{
Delay_ms(50);
while((UART2_SR&0x40) == 0x00);
UART2_DR = *b;
}
}
接收中断程序如下:
@far @interrupt void Recv_IRQHandler(void)
{
uchar ch;
while(!(UART2_SR & 0x20));
ch =UART2_DR;
Rec_Buf[i]=ch;// 当数组接受的数组大于248个时,覆盖后8个数尽量保证能接受到OK等字符,但仍存在bug
++i;
if(i==248)
i=242;
Rec_Buf[249]='\0';
}
请高手指点下 ; 现在串口一直发送不出数据
谢谢!
|
|
|
|
|
|
|
|
|