找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1028|回复: 8
打印 上一主题 下一主题
收起左侧

单片机串口2发送字符不能赋值 keil c debug跟踪S2BUF的值,始终为0xFC

[复制链接]
跳转到指定楼层
楼主
我写了一个单片机程序,从STC12C5A60S2单片机串口2循环发送字符8,编译都正确,但发送怎么都不成功。
在keil c debug跟踪S2BUF的值,始终为0xFC。

#include<STC12C5A60S2.h>

void main()
{
        AUXR &= 0xF7;                //波特率不倍速
        S2CON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x04;                //定时器时钟1T模式
        BRT = 0xF7;                //设置定时重载值
        AUXR |= 0x10;                //启动独立波特率发射器

        while(1)
{
  S2BUF=0x38;
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2022-10-28 16:48 | 只看该作者
SBUF是同名两个完全不同的寄存器,读是一个,写是另一个。你写进去能读出来才真的见鬼了,S2BUF同样道理。
回复

使用道具 举报

板凳
ID:25310 发表于 2022-10-28 17:25 | 只看该作者
不知你发送中断怎么写的,加个延时1mS 试一试 ,
回复

使用道具 举报

地板
ID:1049560 发表于 2022-10-28 20:38 | 只看该作者
pcbboy 发表于 2022-10-28 17:25
不知你发送中断怎么写的,加个延时1mS 试一试 ,

但是,如果从单片机STC12C5A60S2串口1循环发送字符8,发送就成功
在keil c debug跟踪SBUF的值,赋值是成功的。不知从串口2为什么就不行
求高手支招
#include<STC12C5A60S2.h>
void main()
{
        PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x40;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设置定时器模式
        TMOD |= 0x20;                //设置定时器模式
        TL1 = 0xF7;                //设置定时初始值
        TH1 = 0xF7;                //设置定时重载值
        ET1 = 0;                //禁止定时器%d中断
        TR1 = 1;                //定时器1开始计时

        while(1)
{
  SBUF=0x38;
}
}
回复

使用道具 举报

5#
ID:1034262 发表于 2022-10-28 21:34 | 只看该作者
不断地给SBUF或S2BUF赋值,产口怎么发?再怎么的也得查询一下TI吧?
为什么不用STC官方例子试试?STC的例子都有完整工程、源码、编译好的HEX文件。
回复

使用道具 举报

6#
ID:123289 发表于 2022-10-29 08:34 | 只看该作者
假设你写38,读到也是38。那么外来串入的数据是多少呢?再哪里取呢?一定也是38吗?
想想沙发说的是否正确。
遇到问题,记住:首先是读通手册。
回复

使用道具 举报

7#
ID:1049560 发表于 2022-11-26 13:02 | 只看该作者
感谢提醒,用STC官方例子,收发都成功了。但是,在keil C debug 的watch 窗口中,观察S2BUF,每次给S2BUF赋值后,观察到的还是0xFC,这个真没搞懂。
回复

使用道具 举报

8#
ID:1049560 发表于 2022-11-26 13:02 | 只看该作者
感谢提醒,用STC官方例子,收发都成功了。但是,在keil C debug 的watch 窗口中,观察S2BUF,每次给S2BUF赋值后,观察到的还是0xFC,这个真没搞懂。
回复

使用道具 举报

9#
ID:161164 发表于 2022-11-27 00:04 | 只看该作者
Keil 的89C52仿真是没有串口2的


回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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