久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1678|回復: 6
收起左側

STC89C52單片機串口通信keil代碼燒錄到單片機上不能發送,Protues上仿真沒有問題

[復制鏈接]
ID:1102910 發表于 2023-12-6 15:05 | 顯示全部樓層 |閱讀模式
#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)  //發送一個字符
{
        SBUF = dat;
        while(!TI);
        TI = 0;
        }
//===========================================================
char putchar(char c)  //獲取一個字符
{
         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顯示函數
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)
        {
               
        }
        }
        
//=================================================================

回復

使用道具 舉報

ID:458247 發表于 2023-12-6 16:17 | 顯示全部樓層
檢查晶振頻率
回復

使用道具 舉報

ID:277550 發表于 2023-12-6 16:23 | 顯示全部樓層

可以按STC下載工具中的串口例子,來抄一個。


~~~~~
回復

使用道具 舉報

ID:1102910 發表于 2023-12-6 16:42 | 顯示全部樓層
解決了,是“文件大小超出程序區范圍,超出部分已被自動移到EEPROM區”刪了一些定義就好了
回復

使用道具 舉報

ID:1102910 發表于 2023-12-6 16:43 | 顯示全部樓層
devcang 發表于 2023-12-6 16:23
可以按STC下載工具中的串口例子,來抄一個。

謝謝,就是這樣試了試才發現,然后解決了
回復

使用道具 舉報

ID:1103003 發表于 2023-12-6 23:16 | 顯示全部樓層
定義有問題吧 刪刪看
回復

使用道具 舉報

ID:1037692 發表于 2023-12-7 12:04 | 顯示全部樓層
這種情況可能是由于單片機的硬件連接問題或者軟件配置問題導致的。首先,確保單片機的串口引腳連接正確,并且電平轉換電路(如果有的話)也正確連接。然后,檢查keil代碼中的串口配置是否正確,包括波特率、數據位、停止位和校驗位等參數。另外,還需要確保程序中的發送函數調用正確,并且發送的數據格式符合接收端的要求。

如果以上步驟都沒有解決問題,可以嘗試使用示波器或者邏輯分析儀來監測串口信號,以確定是否有數據發送出去。另外,還可以嘗試更換單片機或者調整串口配置參數來排除硬件問題。

最后,如果以上方法都無法解決問題,可以嘗試在單片機上添加調試輸出功能,通過串口或者其他方式輸出調試信息,幫助定位問題所在。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品一区二区三区 | 亚洲视频免费观看 | 官场少妇尤物雪白高耸 | 黄色小视频免费观看 | 少妇视频网站 | 日韩国产精品一区二区 | 亚洲一区二区三区在线播放 | 国产在线视频一区二区 | 91久久精品日日躁夜夜躁欧美 | 国产精品成人国产乱一区 | 亚洲综合一区二区三区 | 欧美成人精品一区二区三区在线看 | 亚洲一区二区国产精品 | 日韩精品少妇 | 国产日韩欧美 | 久久久久久久久久久久久久久久久久久 | 一级片免费网站 | 黄色片网站在线观看 | 日产精品久久久一区二区 | 日韩av在线网站 | 国产成人a亚洲精品 | 久久久一区二区 | 中文字幕av久久爽av | 91av免费| 日韩在线一区二区三区 | 国产又猛又黄又爽 | 97视频在线观看免费 | 日韩精品视频在线免费观看 | 爱搞逼综合网 | 法国极品成人h版 | 五月天激情综合网 | 五月天色综合 | 黄色大片免费观看 | 国产精品欧美日韩 | 欧美成人三级 | 亚洲综合激情网 | av免费看网站| 欧洲精品一区二区 | 亚洲国产片 | 色哟哟一区二区三区 | 午夜精品免费 |