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

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

QQ登錄

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

搜索
查看: 1341|回復(fù): 3
收起左側(cè)

大家?guī)蛶臀铱匆幌聠纹瑱C(jī)串口通訊亂碼問(wèn)題?有點(diǎn)搞不懂了

[復(fù)制鏈接]
ID:999123 發(fā)表于 2022-1-8 21:52 | 顯示全部樓層 |閱讀模式
我的開(kāi)發(fā)板晶振是12MHZ的,第一個(gè)是別人寫(xiě)的,在2400波特率下可以正常通訊,第二個(gè)我的,在任何波特率下都是亂碼,大家?guī)臀铱聪履睦锊煌耍x謝大家了。                                                         
                                                                                                                /**************************************************************************************
實(shí)驗(yàn)名稱:串口通信實(shí)驗(yàn)
接線說(shuō)明:        
實(shí)驗(yàn)現(xiàn)象:下載程序后,當(dāng)串口助手發(fā)送數(shù)據(jù)給單片機(jī),單片機(jī)原封不動(dòng)轉(zhuǎn)發(fā)給串口助手顯示
注意事項(xiàng):使用黃色跳線帽將CH340旁的P5端子的UTX和P30短接,URX和P31短接,出廠默認(rèn)已短接好                                                                                                                                                                  
***************************************************************************************/
#include "reg52.h"

typedef unsigned int u16;        //對(duì)系統(tǒng)默認(rèn)數(shù)據(jù)類型進(jìn)行重定義
typedef unsigned char u8;


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

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

        while(1)
        {                        
                                                        
        }               
}

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

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

}   

這是我的

  #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;
          }
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:287575 發(fā)表于 2022-1-9 14:19 | 顯示全部樓層
過(guò)程錯(cuò)誤,肯定是亂發(fā)的,中斷接到一個(gè)數(shù),你在中斷發(fā)了一個(gè)數(shù),也不管它發(fā)完了,程序到主程序又開(kāi)始發(fā)送,中斷里的數(shù)肯定沒(méi)發(fā)完,主程序發(fā)了一數(shù)后,又進(jìn)中斷了,中斷又發(fā),中斷不讓主程序過(guò)好日子,主程序也不讓中斷過(guò)好日子,你發(fā)不完,我就發(fā),總之大家都沒(méi)好日子過(guò)!
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区电影 | 高清一区二区三区 | 欧美一区二区三区在线观看 | 欧美特级黄色 | 成人看片在线观看 | 日韩精品久久久久 | 97视频久久 | av中文字幕在线播放 | 日日av | 久草在线 | 亚洲精品性视频 | 久久久国产一区二区三区 | 中文字幕日韩三级 | 新超碰97| 亚洲精品成人免费 | 日本黄色短片 | 久久精品av麻豆的观看方式 | 色综合99 | 久久久青草婷婷精品综合日韩 | 99亚洲国产精品 | 国产香蕉视频在线播放 | 成人在线h | 蜜臀久久99精品久久久久久宅男 | 精品国产一区二区三区免费 | 欧美精品一区二区三区在线 | 成人在线视频免费观看 | 国产一区二区三区不卡av | 中文日本在线 | 亚洲一区久久 | 成人国产一区二区三区精品麻豆 | 欧美日韩国产一区二区三区 | 日韩欧美不卡 | 亚洲精品一区二区在线观看 | 精品久| 亚洲国产精品99久久久久久久久 | 能看的av| 天堂亚洲 | 天堂中文字幕av | 午夜精品久久久久久久久久久久 | 成人精品国产 | 91视频在线看 |