找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3455|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

請教STC8G1K08A單片機(jī)串口接收問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
請大俠指點(diǎn)下:
串口為什么發(fā)送正常,接收卻不正常呢?



單片機(jī)源程序如下:
#include "STC8G.h"
#include "intrins.h"
void UartInit(void)                //115200bps@33.1776MHz
{
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x40;                //定時(shí)器時(shí)鐘1T模式
        AUXR &= 0xFE;                //串口1選擇定時(shí)器1為波特率發(fā)生器
        TMOD &= 0x0F;                //設(shè)置定時(shí)器模式
        TL1 = 0xB8;                //設(shè)置定時(shí)初始值
        TH1 = 0xFF;                //設(shè)置定時(shí)初始值
        ET1 = 0;                //禁止定時(shí)器%d中斷
        TR1 = 1;                //定時(shí)器1開始計(jì)時(shí)
}
void GPI_Init(void)
{
    P3M0 = 0x00;
    P3M1 = 0x00;
    P31 = 0; //PWM關(guān)
}
/* 串口發(fā)送字節(jié)數(shù)據(jù)函數(shù) 參數(shù)是要發(fā)送的字節(jié) */
void UartSend_Data(unsigned char dat)
{
    SBUF = dat;  // 把要發(fā)送的數(shù)據(jù)給了SBUF寄存器
    while(!TI);  // 等待數(shù)據(jù)發(fā)送完成
    TI = 0;      // 清除發(fā)送完成標(biāo)志位
}
void main()
{
    /* 定義一個(gè)8位變量 用于接收串口接收的字節(jié) */
    unsigned char x =0;
    GPI_Init();
    UartInit(); // 串口初始化
    while (1)
    {
        SBUF = 0x01;  // 把要發(fā)送的數(shù)據(jù)給了SBUF寄存器
        while(!TI);  // 等待數(shù)據(jù)發(fā)送完成
        TI = 0;
        if (TI)
        {
            TI = 0;     //清中斷標(biāo)志
            P31 = !P31; //測試PWM端口
        }
        if (RI)// 如果串口接收到數(shù)據(jù)
        {
            RI = 0;      //清中斷標(biāo)志
            x =SBUF;
            if (x == 0x01)
            {
                P31 = !P31;  //翻轉(zhuǎn)MOS管狀態(tài)
                UartSend_Data('l');
            }
            if (x == 0x02)
            {
                P32 = !P32;  //翻轉(zhuǎn)led狀態(tài)
                SBUF = 'm';  // 把要發(fā)送的數(shù)據(jù)給了SBUF寄存器
                while(!TI);  // 等待數(shù)據(jù)發(fā)送完成
                TI = 0;      // 清除發(fā)送完成標(biāo)志位
            }
        }
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:878061 發(fā)表于 2022-1-11 20:59 | 只看該作者
  P31 = !P31; //測試PWM端口
回復(fù)

使用道具 舉報(bào)

板凳
ID:878061 發(fā)表于 2022-1-11 21:01 | 只看該作者
不要操作P3.1,換個(gè)IO口,因?yàn)榇诳臻e狀態(tài)為高電平,遇到低電平就會(huì)開始判斷起始位

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表