查看: 2107|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2015-3-24 10:15
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-1-28 10:03:29 | 显示全部楼层 |阅读模式
    分享到:
    各位高手好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';
    }                                          

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

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-11-29 05:41 , Processed in 0.103206 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.