OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4023|回复: 4

关于STC12C5A60S2串口通讯的问题

[复制链接]

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-5-28
在线时间
17 小时
发表于 2016-6-28 12:07:35 | 显示全部楼层 |阅读模式
4金钱
根据数据手册写的一个串口(P3.0 P3.1)模式1收发程序,发出收据后能接收到数据但是数据不正确,求大神解答。
#include <STC12C5A60S2.h>
void config(unsigned int temporary)
{
        BRT = 256 - 1000000/(32*temporary);//12M晶振
        AUXR = 0x11;
}
void main()
{
        IE = 0x90;
        SCON = 0x50;
        config(9600);
        while(1);
}
void UARTinterrupt() interrupt 4
{

        if(TI == 1)
        {
         TI = 0;
        }
        if(RI == 1)
        {
         RI = 0;
         SBUF = SBUF + 1;
        }
}

最佳答案

查看完整内容[请看2#楼]

SBUF = SBUF +1; 为什么要加1?是不是你要得到你接收到的数据加1? 最主要的是你的波特率是不是对!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2016-6-28 12:07:36 | 显示全部楼层
本帖最后由 烟酒不沾 于 2016-6-28 15:42 编辑

  SBUF = SBUF +1;
为什么要加1?是不是你要得到你接收到的数据加1? 最主要的是你的波特率是不是对!
回复

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-5-28
在线时间
17 小时
 楼主| 发表于 2016-6-28 16:33:47 | 显示全部楼层
烟酒不沾 发表于 2016-6-28 15:39
SBUF = SBUF +1;
为什么要加1?是不是你要得到你接收到的数据加1? 最主要的是你的波特率是不是对!

这个是根据数据手册写得
回复

使用道具 举报

5

主题

168

帖子

0

精华

高级会员

Rank: 4

积分
780
金钱
780
注册时间
2016-5-28
在线时间
64 小时
发表于 2016-6-29 09:09:51 | 显示全部楼层
BRT = 256 - 1000000/(32*temporary);//12M晶振
怎么感觉这是10M晶振
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-12-12
在线时间
1 小时
发表于 2017-12-26 18:46:19 | 显示全部楼层
请问BTR值是如何算出来的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 22:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表