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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1341|回復: 3
收起左側

大家幫幫我看一下單片機串口通訊亂碼問題?有點搞不懂了

[復制鏈接]
ID:999123 發表于 2022-1-8 21:52 | 顯示全部樓層 |閱讀模式
我的開發板晶振是12MHZ的,第一個是別人寫的,在2400波特率下可以正常通訊,第二個我的,在任何波特率下都是亂碼,大家幫我看下哪里不同了,謝謝大家了。                                                         
                                                                                                                /**************************************************************************************
實驗名稱:串口通信實驗
接線說明:        
實驗現象:下載程序后,當串口助手發送數據給單片機,單片機原封不動轉發給串口助手顯示
注意事項:使用黃色跳線帽將CH340旁的P5端子的UTX和P30短接,URX和P31短接,出廠默認已短接好                                                                                                                                                                  
***************************************************************************************/
#include "reg52.h"

typedef unsigned int u16;        //對系統默認數據類型進行重定義
typedef unsigned char u8;


/*******************************************************************************
* 函 數 名       : uart_init
* 函數功能                 : 串口通信中斷配置函數,通過設置TH和TL即可確定定時時間
* 輸    入       : baud:波特率對應的TH、TL裝載值
* 輸    出             : 無
*******************************************************************************/
void uart_init(u8 baud)
{
        TMOD|=0X20;        //設置計數器工作方式2
        SCON=0X50;        //設置為工作方式1
        PCON=0X80;        //波特率加倍
        TH1=0xe6;        //計數器初始值設置
        TL1=0xe6;
        ES=1;                //打開接收中斷
        EA=1;                //打開總中斷
        TR1=1;                //打開計數器               
}

/*******************************************************************************
* 函 數 名       : main
* 函數功能                 : 主函數
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{        
        uart_init(0XFA);//波特率為2400

        while(1)
        {                        
                                                        
        }               
}

void uart() interrupt 4 //串口通信中斷函數
{
        u8 rec_data;

        RI = 0;                        //清除接收中斷標志位
        rec_data=SBUF;        //存儲接收到的數據
        SBUF=rec_data;        //將接收到的數據放入到發送寄存器
        while(!TI);                //等待發送數據完成
        TI=0;                        //清除發送完成標志位                                

}   

這是我的

  #include<reg52.h>
        #define uchar unsigned char
        #define uint unsigned int
        unsigned char flag, a, i;
        uchar code table[]="i get";
        void init()
        {
          TMOD=0x20;
          SCON=0x50;
         PCON=0x80;
         
          TH1=0xe6;
          TL1=0xe6;
          TR1=1;
           EA=1;
           ES=1;
         }

         void main()
         {
                   init();
                   while(1)
          {
         if(flag==1)
           {
                  ES=0;
                  for(i=0;i<6;i++)
           {
                        SBUF=table[ i];
                        while(!TI);
                         TI=0;

          }
                  SBUF=a;
                  while(!TI);
                  TI=0;
                  ES=1;
                  flag=0;
          }
          }

          }
          void ser() interrupt 4

          {
                 RI=0;
                   a=SBUF;
                   flag=1;
          }
回復

使用道具 舉報

ID:624769 發表于 2022-1-8 23:10 | 顯示全部樓層
串口中斷里面放while……
  你想不亂碼……
只能  在上位機 一個字符一個字符 的發……
回復

使用道具 舉報

ID:287575 發表于 2022-1-9 14:19 | 顯示全部樓層
過程錯誤,肯定是亂發的,中斷接到一個數,你在中斷發了一個數,也不管它發完了,程序到主程序又開始發送,中斷里的數肯定沒發完,主程序發了一數后,又進中斷了,中斷又發,中斷不讓主程序過好日子,主程序也不讓中斷過好日子,你發不完,我就發,總之大家都沒好日子過!
回復

使用道具 舉報

ID:287575 發表于 2022-1-9 14:25 | 顯示全部樓層
我看錯了,中斷不是發,主程序也禁止串口中斷了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人福利 | 成人黄色电影在线观看 | 中文字幕亚洲欧美 | 成人在线视频免费播放 | 国产视频久久久 | a在线免费观看视频 | 国产精品视频一区二区三区 | 一区二区av在线 | 国产精品久久久久久妇女6080 | 9久久婷婷国产综合精品性色 | 成人精品一区二区三区中文字幕 | 欧美一区二区三区视频在线播放 | 操人视频在线观看 | 欧美精品在线一区二区三区 | 国产黄色精品 | 精品一区二区在线视频 | 一区视频在线 | 视频羞羞| 请别相信他免费喜剧电影在线观看 | 欧美日韩精品一区 | 国内自拍视频在线观看 | 国产一区二区精华 | 久久国产美女视频 | 91免费视频 | 中文字幕蜜臀 | 欧美a区 | 国产视频第一页 | 欧美日韩福利视频 | 在线一区 | 日日摸天天添天天添破 | 在线成人av | 亚洲国产免费 | 欧美日韩一区二区在线 | 男人亚洲天堂 | 久久久国产一区二区三区四区小说 | 国产黄色在线观看 | 国产免费视频在线 | 日韩免费av| 草草在线观看 | 久久精品视频播放 | 国产精品福利在线观看 |