回答

收藏

STM8S105k6的串口有的时候发送数据发不出去

STMCU STMCU 2372 人阅读 | 0 人回复 | 2015-01-28

各位高手好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';
}                                          

请高手指点下 ; 现在串口一直发送不出数据
谢谢!
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条