打印

在51单片机中波特率如何切换

[复制链接]
2511|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
349264710|  楼主 | 2011-3-27 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用51单片机中遇到一个问题。我使用定时器做波特率发生器,因为接收和发送的波特率不一样,所以波特率要不停的切换,在切换波特率时,我关闭串口中断》关闭定时器》重新赋定时器的高八位和低八位值》启用定时器》打开串口中断。这样的流程有问题吗?另外我用串口发送数据时用串口中断的方法,程序结构如下,有问题吗?
void rec_send_data(void) interrupt 4  //串口中断
{
     if(RI)//接收中断
    {
         RI = 0;//清除接收中断
         rec_data = SBUF;//读取接收的数据
         TI = 1;//打开发送中断
    }
     else if (TI)//发送中断
     {
          TI = 0;//清除发送中断
         SBUF = send_data;//把要发送的数据放到发送寄存器中
     }
}

相关帖子

沙发
ayb_ice| | 2011-3-28 08:41 | 只看该作者
有些稍高级的51可以分别设置接收与发送波特率,如果动态切换设置后最后延时2个以上的BIT时间再发送数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

77

帖子

3

粉丝