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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

STC89C52單片機(jī)串口通信keil代碼燒錄到單片機(jī)上不能發(fā)送,Protues上仿真沒(méi)有問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1102910 發(fā)表于 2023-12-6 15:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "reg52.h"               
#include <stdio.h>
#include <oled.h>        
sbit SDA = P2 ^ 1;
sbit SCL = P2 ^ 0;



char recive=0;
unsigned char a;


//========================================================
//串口通信初始化
void UartInit(void)                //9600bps@11.0592MHz
{
        SCON = 0x50;               
        TMOD &= 0x0F;               
        TMOD |= 0x20;               
        TL1 = 0xFD;               
        TH1 = 0xFD;               
        ET1 = 0;               
        TR1 = 1;               
        ES = 1;
        EA = 1;
}
//========================================================

void SendByte (unsigned char dat)  //發(fā)送一個(gè)字符
{
        SBUF = dat;
        while(!TI);
        TI = 0;
        }
//===========================================================
char putchar(char c)  //獲取一個(gè)字符
{
         SendByte(c);
        return c;
}
//==============================================================
//延遲函2,ms=1,延遲1ms
void delay(unsigned int ms)
{
        unsigned char j = 0;
        while (ms--)
                for (j = 0; j < 254; j++);
}
//==============================================================
//OLED顯示函數(shù)
void OLED_display()
{
        OLED_Init();      //初始化OLED
        OLED_Clear();             //OLED清屏
        
  OLED_ShowChar(5,5,'A',8);
        OLED_ShowString(1,2,"Hello World",8);
}               
//=================================================================

void UART() interrupt 4
{
        if(RI == 1)
        {
                 
                a = SBUF;
                recive=2;
                switch(recive)
                {
                        case 0:printf("停止\r\n");break;
                        case 1:printf("3\r\n");break;
                        case 2:printf("2\r\n");break;
                        case 3:printf("1\r\n");break;
                        default: break;
                }
                RI=0;
        }        
}
//====================================================================
//主程序        
void main()
{

        UartInit();
        //printf("Start now!\r\n");
        OLED_display();
        while(1)
        {
               
        }
        }
        
//=================================================================

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除
板凳
ID:458247 發(fā)表于 2023-12-6 16:17 | 只看該作者
檢查晶振頻率
回復(fù)

使用道具 舉報(bào)

地板
ID:277550 發(fā)表于 2023-12-6 16:23 | 只看該作者

可以按STC下載工具中的串口例子,來(lái)抄一個(gè)。


~~~~~
回復(fù)

使用道具 舉報(bào)

5#
ID:1102910 發(fā)表于 2023-12-6 16:42 | 只看該作者
解決了,是“文件大小超出程序區(qū)范圍,超出部分已被自動(dòng)移到EEPROM區(qū)”刪了一些定義就好了
回復(fù)

使用道具 舉報(bào)

6#
ID:1102910 發(fā)表于 2023-12-6 16:43 | 只看該作者
devcang 發(fā)表于 2023-12-6 16:23
可以按STC下載工具中的串口例子,來(lái)抄一個(gè)。

謝謝,就是這樣試了試才發(fā)現(xiàn),然后解決了
回復(fù)

使用道具 舉報(bào)

7#
ID:1103003 發(fā)表于 2023-12-6 23:16 | 只看該作者
定義有問(wèn)題吧 刪刪看
回復(fù)

使用道具 舉報(bào)

8#
ID:1037692 發(fā)表于 2023-12-7 12:04 | 只看該作者
這種情況可能是由于單片機(jī)的硬件連接問(wèn)題或者軟件配置問(wèn)題導(dǎo)致的。首先,確保單片機(jī)的串口引腳連接正確,并且電平轉(zhuǎn)換電路(如果有的話)也正確連接。然后,檢查keil代碼中的串口配置是否正確,包括波特率、數(shù)據(jù)位、停止位和校驗(yàn)位等參數(shù)。另外,還需要確保程序中的發(fā)送函數(shù)調(diào)用正確,并且發(fā)送的數(shù)據(jù)格式符合接收端的要求。

如果以上步驟都沒(méi)有解決問(wèn)題,可以嘗試使用示波器或者邏輯分析儀來(lái)監(jiān)測(cè)串口信號(hào),以確定是否有數(shù)據(jù)發(fā)送出去。另外,還可以嘗試更換單片機(jī)或者調(diào)整串口配置參數(shù)來(lái)排除硬件問(wèn)題。

最后,如果以上方法都無(wú)法解決問(wèn)題,可以嘗試在單片機(jī)上添加調(diào)試輸出功能,通過(guò)串口或者其他方式輸出調(diào)試信息,幫助定位問(wèn)題所在。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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