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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

串口通訊 問題,請教高手。。

查看數(shù): 2462 | 評論數(shù): 9 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2018-11-9 16:17

正文摘要:

用的普中科技C51 單片機(jī)開發(fā)板。 現(xiàn)在想實(shí)現(xiàn)AD轉(zhuǎn)換,我有一個(gè)直線電位計(jì),單片機(jī)通過AD轉(zhuǎn)換將電位計(jì)的數(shù)值顯示在動(dòng)態(tài)數(shù)碼管上,同時(shí)增加一個(gè)串口,從串口助手上發(fā)送1,單片機(jī)將當(dāng)前直線電位計(jì)的數(shù)值返回串口助手, ...

回復(fù)

ID:423648 發(fā)表于 2018-11-14 16:00
15942379927 發(fā)表于 2018-11-13 15:38
你可以試一試用八位的碼去驗(yàn)證 比如說0x0a 是1  0x0b是2  。。。。。無非就是在case那里改一下

你的意思 就是  我 把receiveData=='1'  這里的1  改成0x0a嗎?這樣可以,但是并沒有解決返回值是亂碼的問題。。 現(xiàn)在問題的原因找到了,就是Read_AD_Data(0xE4)返回的是數(shù)字,而串口傳過去的是字符串,所以就是亂碼了。但是我不知道怎么寫。。

我嘗試用數(shù)組把數(shù)字摘出來 ,一個(gè)一個(gè)傳

void Usart() interrupt 4
{
        u8 receiveData;
        u8 str[4];
        u8 i;
        u8 j;
       
        if(RI == 1)
        {
                RI = 0;//清除接收中斷標(biāo)志位
                receiveData=SBUF;//儲存接收到的數(shù)據(jù)         

                for(j=1;j<5;j++)
                {
                        if(receiveData=='1')
                        {
                                i=Read_AD_Data(0xE4);
                                str[1]=i/1000+48;
                                str[2]=i%1000/100+48;
                                str[3]=i%1000%100/10+48;
                                str[4]=i%1000%100%10+48;       
                                SBUF=str[j];       
                        }
                        else
                        {
                                SBUF=receiveData;
                        }
                }
        }
        while(!TI);                         //等待發(fā)送數(shù)據(jù)完成
        TI=0;                                                 //清除發(fā)送完成標(biāo)志位
}


但是這樣也不對。。。
ID:423648 發(fā)表于 2018-11-14 15:55
guangshi_wq 發(fā)表于 2018-11-13 14:42
SBUF=Read_AD_Data(0xE4);        
沒有看見你的子涵數(shù)。不知道怎么調(diào)用啊。

Read_AD_Data(0xE4)  這個(gè)里面就是0-4095,一共4096個(gè)數(shù),是我采直線電位計(jì)的返回值。。。現(xiàn)在確定就是中斷這塊的問題,而且是 Read_AD_Data(0xE4)  里面的數(shù)字和字符串之間的矛盾,如果我把 Read_AD_Data(0xE4)  改成48,那么串口助手上的返回值就是0。。。。但是現(xiàn)在關(guān)鍵是 不知道這里怎么處理。
ID:331575 發(fā)表于 2018-11-13 15:38
你可以試一試用八位的碼去驗(yàn)證 比如說0x0a 是1  0x0b是2  。。。。。無非就是在case那里改一下
ID:331575 發(fā)表于 2018-11-13 15:32
1貌似跟停止位重復(fù)了 ,串口分不清楚到底是數(shù)據(jù)位還是停止位  我的分析
ID:375003 發(fā)表于 2018-11-13 14:42
SBUF=Read_AD_Data(0xE4);        
沒有看見你的子涵數(shù)。不知道怎么調(diào)用啊。
ID:423648 發(fā)表于 2018-11-13 11:22
為什么沒人來,能不能把這個(gè)貼子轉(zhuǎn)到問答區(qū)啊
ID:423648 發(fā)表于 2018-11-12 09:15
沒人嗎?呃

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

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

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