打印

求教!c8051串口发送数据

[复制链接]
4277|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jhzh951753|  楼主 | 2011-9-9 14:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dengm| | 2011-9-9 14:20 | 只看该作者
flag_send is TI.

使用特权

评论回复
板凳
草履虫| | 2011-9-9 14:22 | 只看该作者
不对.
串口发送中断标志位 = 0;
sbuf = 要发送的数据;
while(!串口发送中断标志位);
串口发送中断标志位 = 0;
另外需要注意寄存器页地址问题.

使用特权

评论回复
地板
jhzh951753|  楼主 | 2011-9-9 14:28 | 只看该作者
3# 草履虫 串口中断标志位 是哪个啊?上面的程序flag_send=0;就是串口标志位啊 。。sbuf0 也是要发送的数据。。

使用特权

评论回复
5
joyme| | 2011-9-9 14:36 | 只看该作者
为什么不直接用TI,而用flag_send,你的flag_send是怎么定义的?TI 是单片机里的特殊寄存器,用sfr(可能不同的单片机不一样)关键词定义的

使用特权

评论回复
6
jhzh951753|  楼主 | 2011-9-9 14:44 | 只看该作者
5# joyme
我也不知道我是拿得别人的程序改得。。直接用TI0 么?

使用特权

评论回复
7
joyme| | 2011-9-9 15:04 | 只看该作者
是的

使用特权

评论回复
8
jhzh951753|  楼主 | 2011-9-9 15:22 | 只看该作者
debug的时候查看SBUF0里面一直是0x00,,即使给他赋值的话也不行。。。

使用特权

评论回复
9
ayb_ice| | 2011-9-9 15:28 | 只看该作者
这样也行,但中断要做适当处理
void isr_uart0(void) interrupt 4
{
     if(TI0){
        TI0 = 0;
         flag_send = 1;
     }
.............
}

使用特权

评论回复
10
wanghongxing| | 2011-9-9 17:56 | 只看该作者

使用特权

评论回复
11
wanghongxing| | 2011-9-9 18:06 | 只看该作者

使用特权

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

本版积分规则

个人签名:<table><tr><td>我在这里呢!!~ </td></tr></table>

1

主题

127

帖子

1

粉丝