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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1533|回復: 13
收起左側

單片機串口為什么是這樣的?

[復制鏈接]
ID:1058641 發(fā)表于 2024-5-20 22:32 | 顯示全部樓層 |閱讀模式
主函數(shù)
void uartdo()
{
        if(uart_index==0)
                return;
       
        if(uart_recv[uart_index-2]==0x0d && uart_recv[uart_index-1]==0x0a)
        {
                if(uart_index==4 && uart_recv[0]=='S' && uart_recv[1]=='T')
                        sprintf(sendstring,"$%02d,%5.2f\r\n",(uint)distance,temp);
                else if(uart_index==6 && uart_recv[0]=='P' && uart_recv[1]=='A' && uart_recv[2]=='R' && uart_recv[3]=='A')
                        sprintf(sendstring,"#%02d,%02d\r\n",(uint)para_buf[1],(uint)para_buf[0]);
                else
                        sprintf(sendstring,"ERROR\r\n");
                send(sendstring);
                uart_index=0;
        }
        else if(uart_index>=7)
        {
                sprintf(sendstring,"ERROR\r\n");
                send(sendstring);
                uart_index=0;
        }
        memset(uart_recv,0,uart_index);
       
}
uart.c
void UartInit(void)                //9600bps@12.000MHz
{
        SCON = 0x50;                //8???,?????
        AUXR |= 0x01;                //??1?????2???????
        AUXR |= 0x04;                //???2???Fosc,?1T
        T2L = 0x8F;                //??????
        T2H = 0xFD;
        AUXR |= 0x10;                //?????2
        ES = 1;
        EA = 1;
}

void sendbyte(unsigned char dat)
{
        SBUF=dat;
        while(TI==0);
        TI=0;
       
}

void send(unsigned char *dat)
{
        while(*dat!='\0')
        sendbyte(*dat++);
}

回復

使用道具 舉報

ID:1058641 發(fā)表于 2024-5-20 22:39 | 顯示全部樓層
這是圖片
屏幕截圖 2024-05-20 223853.png
回復

使用道具 舉報

ID:237471 發(fā)表于 2024-5-21 06:45 | 顯示全部樓層
波特率好像不對,代碼里的是9600,圖片里的是4800
回復

使用道具 舉報

ID:1080935 發(fā)表于 2024-5-21 08:08 | 顯示全部樓層
應該是波特率的問題,你看看你左側硬件選項是不是選了內(nèi)部時鐘,看你下載后的時鐘應該是11.0592(11.063MHz),程序中按照12MHz時鐘設置的波特率。
回復

使用道具 舉報

ID:542270 發(fā)表于 2024-5-21 08:10 | 顯示全部樓層
keil軟件中更改格式吧 edit configuartation  encoding    是國標2312還是UTF8
回復

使用道具 舉報

ID:76027 發(fā)表于 2024-5-21 08:48 | 顯示全部樓層
void UartInit(void)                //9600bps@12.000MHz
你下載的時候選的是11.0592
回復

使用道具 舉報

ID:76027 發(fā)表于 2024-5-21 08:50 | 顯示全部樓層
還有你串口波特率選 的是4800
回復

使用道具 舉報

ID:1058641 發(fā)表于 2024-5-22 00:01 | 顯示全部樓層
改成了12M,但是輸出都是ERROR
屏幕截圖 2024-05-22 000101.png
回復

使用道具 舉報

ID:237471 發(fā)表于 2024-5-22 05:44 | 顯示全部樓層
uart_recv[0] 這個是在哪里賦值的?看一下賦值的是不是有問題,看了一下你的代碼,應該是你的問題,不是串口的問題
回復

使用道具 舉報

ID:1080935 發(fā)表于 2024-5-22 08:08 | 顯示全部樓層
把你收到的數(shù)據(jù)打印出來看看(最好16進制),看看又沒有發(fā)送回車換行符,把ERROR編號,看看從哪出的錯。也可不要文本發(fā)送,全改為16進制發(fā)送看看,確定發(fā)送回車和換行
回復

使用道具 舉報

ID:65956 發(fā)表于 2024-5-22 08:32 | 顯示全部樓層
rtyweq 發(fā)表于 2024-5-22 00:01
改成了12M,但是輸出都是ERROR

因為你發(fā)送時沒有加換行回車,判斷不到那兩個就認為錯誤了
回復

使用道具 舉報

ID:1074206 發(fā)表于 2024-5-22 10:30 | 顯示全部樓層
亂碼出現(xiàn)一半可能是 波特率不對,或者接線沒接好
回復

使用道具 舉報

ID:1058641 發(fā)表于 2024-5-23 20:21 | 顯示全部樓層
改成這樣可以了
屏幕截圖 2024-05-23 202054.png
回復

使用道具 舉報

ID:1112477 發(fā)表于 2024-5-23 21:29 | 顯示全部樓層

波特率的緣故吧
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 老头搡老女人毛片视频在线看 | 国产成人精品一区二区在线 | av黄色在线观看 | 国产三级| 亚洲 一区| 国产精品1区2区3区 国产在线观看一区 | 中文字幕一区二区三区四区五区 | 天天色天天 | 国产1页| 亚洲视频一区在线观看 | 亚洲精品免费在线 | 国产超碰人人爽人人做人人爱 | 成年人在线观看 | 九九99精品 | 国产成人综合在线 | 蜜桃视频麻豆 | 日韩三级在线 | 国产传媒在线播放 | 91久久精品日日躁夜夜躁欧美 | 日本福利视频免费观看 | 国产精品视频500部 a久久 | 久久亚洲国产精品 | av电影一区二区 | 日本精品一区二区三区在线观看视频 | 欧美一区二区三区在线视频 | 九九热免费观看 | 免费视频久久久久 | 亚洲 日本 欧美 中文幕 | 欧美精产国品一二三区 | 国产精品成人国产乱一区 | 午夜精品一区二区三区在线观看 | 精品久久久一区 | 成人在线观看免费视频 | 91资源在线| 超碰美女在线 | 日韩图区 | 欧美精品久久久久久久久久 | 男女羞羞视频在线免费观看 | 免费一级片| 不卡一区 | 午夜影院网站 |