欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2317|回復: 8
收起左側

單片機串口2發送字符不能賦值 keil c debug跟蹤S2BUF的值,始終為0xFC

[復制鏈接]
ID:1049560 發表于 2022-10-28 15:24 | 顯示全部樓層 |閱讀模式
我寫了一個單片機程序,從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;
}
}

回復

使用道具 舉報

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;
}
}
回復

使用道具 舉報

ID:1034262 發表于 2022-10-28 21:34 | 顯示全部樓層
不斷地給SBUF或S2BUF賦值,產口怎么發?再怎么的也得查詢一下TI吧?
為什么不用STC官方例子試試?STC的例子都有完整工程、源碼、編譯好的HEX文件。
回復

使用道具 舉報

ID:123289 發表于 2022-10-29 08:34 | 顯示全部樓層
假設你寫38,讀到也是38。那么外來串入的數據是多少呢?再哪里取呢?一定也是38嗎?
想想沙發說的是否正確。
遇到問題,記住:首先是讀通手冊。
回復

使用道具 舉報

ID:1049560 發表于 2022-11-26 13:02 | 顯示全部樓層
感謝提醒,用STC官方例子,收發都成功了。但是,在keil C debug 的watch 窗口中,觀察S2BUF,每次給S2BUF賦值后,觀察到的還是0xFC,這個真沒搞懂。
回復

使用道具 舉報

ID:1049560 發表于 2022-11-26 13:02 | 顯示全部樓層
感謝提醒,用STC官方例子,收發都成功了。但是,在keil C debug 的watch 窗口中,觀察S2BUF,每次給S2BUF賦值后,觀察到的還是0xFC,這個真沒搞懂。
回復

使用道具 舉報

ID:161164 發表于 2022-11-27 00:04 | 顯示全部樓層
Keil 的89C52仿真是沒有串口2的
2022-11-27_000410.png

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表