首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

jl8串口通信中断问题

jl8串口通信中断问题

使用jl8的芯片,串口发送、接收均以中断方式工作。开始进行串口初始化以后,开总中断,中断打开以后,执行一条指令就进入发送中断子程序,这时我还没写scdr寄存器,不知为什么scte和tc标志置位。scte置位的条件不是,scdr寄存器中的内容传到移位寄存器置位吗,怎么我还没写scdr寄存器这两个标志位就置位?

请指点。
我为人人,人人为我。
按照数据手册上写的,
scs1;               //先读scs1寄存器
scdr=0x00;     //再写scdr
还是不能清除scte和tc标志置位,是什么原因,请高手指点迷津。
我为人人,人人为我。
发送不要用中断,自己麻烦自己啊
签名: 最多300字节 文字将出现在您发表的文章的结尾处。体现您的个性。
发送用查询方式也好,scte和tc标志位也必须清除呀。
我为人人,人人为我。
for(i=0;i<7;i++){ SCDR=scidata;//sci_data; while(!SCS1&SCS1_SCTE){;}//查询SCTE位? 查询方式,用以上程序,由于SCS1_SCTE标志位无法清除,即使SCDR=scidata;执行以后SCS1_SCTE仍为1,这到底是哪里问题,请教高手。
我为人人,人人为我。
正常情况下,SCTE,TC都应该是1,它表示发送缓冲区空和发送完成。

只有当他们为1才可以想SCDR写新数据。
   
返回列表