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

標(biāo)題: 51單片機(jī)的串口亂碼問題 [打印本頁]

作者: Endover    時間: 2017-10-14 21:09
標(biāo)題: 51單片機(jī)的串口亂碼問題
從上位機(jī)發(fā)送一位數(shù)字到單片機(jī),(例如發(fā)送8),使用  a=SBUF;去接收這個數(shù)字,此后在將a送給1602顯示發(fā)現(xiàn)是亂碼,
unsigned char code dat[10]={'0','1','2','3','4','5','6','7','8','9'};     
                        writecom(0x80);                 
                        writedate(dat[a]);   //大致的顯示部分
求問是什么原因,是否需要通過scanf函數(shù)去接受串口送來的數(shù)據(jù)才行,可是這個函數(shù)該怎么使用呢,求教各位大神。


作者: zl2168    時間: 2017-10-14 23:11
scanf函數(shù)不能接受串口送來的數(shù)據(jù)。keil c中的scanf和printf函數(shù)并非80C51串行口真正的I/O操作,而是C51編譯器利用80C51串行口,通過C51庫函數(shù)“Stdio.h”在PC機(jī)上輸入/輸出數(shù)據(jù)信息。
作者: woshishiahode    時間: 2017-10-14 23:57
顯示函數(shù)有問題
作者: 不搭666    時間: 2017-10-15 09:05
先用串口助手調(diào)一下試試
作者: Endover    時間: 2017-10-15 10:04
zl2168 發(fā)表于 2017-10-14 23:11
scanf函數(shù)不能接受串口送來的數(shù)據(jù)。keil c中的scanf和printf函數(shù)并非80C51串行口真正的I/O操作,而是C51編 ...

是嗎,scanf和printf只能在和上位機(jī)通信的時候用嗎。。。。
作者: zl2168    時間: 2017-10-15 19:01
Endover 發(fā)表于 2017-10-15 10:04
是嗎,scanf和printf只能在和上位機(jī)通信的時候用嗎。。。。

是的。scanf和printf函數(shù)在keil c中也能運(yùn)行。
你可在keil c中運(yùn)行該例程序,觀測scanf和printf函數(shù)在keil c中的功能。



以上摘自張志良編著
80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學(xué)習(xí)51單片機(jī)原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學(xué)。

作者: insightx    時間: 2017-10-15 22:22
首先確認(rèn)MCU收到了正確的數(shù)據(jù),然后確認(rèn)1602顯示驅(qū)動程序是正常的;scanf函數(shù)可以百度一下;
作者: yzwzfyz    時間: 2017-10-16 00:05
很簡單,顯示是由點(diǎn)陣或段構(gòu)成的,它不懂12345……,只知道什么地方亮,什么地方暗。你讓它顯示1,送1給它無用,要送1所對應(yīng)的點(diǎn)陣才行。
作者: sldx    時間: 2017-10-16 01:46
加減48試試
作者: hello1314    時間: 2017-10-16 13:20
波特率沒設(shè)置對吧
作者: Endover    時間: 2017-10-16 15:36
sldx 發(fā)表于 2017-10-16 01:46
加減48試試

試過了,不行。。。。
作者: Endover    時間: 2017-10-16 15:37
hello1314 發(fā)表于 2017-10-16 13:20
波特率沒設(shè)置對吧

波特率沒問題啊
作者: imxuheng    時間: 2017-10-16 16:37
亂碼的原因有很多,把程序貼上來看看
作者: dzbj    時間: 2017-10-16 17:22
1602不能直接顯示HEX吧 要轉(zhuǎn)換成DEC然后一位一位顯示吧
作者: cdhadz    時間: 2017-10-16 17:53
波特率是否正常
作者: robertbrown    時間: 2017-10-16 18:06
是不是波特率設(shè)置不對啊
作者: 嘉輝先生    時間: 2017-10-17 11:38
接收到的是字符串,在1602上顯示ASCII碼 顯示函數(shù)后面加個0X48 試試
作者: 大碗公    時間: 2017-10-17 15:24
單片機(jī)從上位機(jī)接收到的數(shù)據(jù)是ASCII碼格式(你發(fā)送8則對應(yīng)的ASCII嗎值為56),你將該數(shù)據(jù)保存在變量a,通過dat[a]獲取對應(yīng)的數(shù)據(jù),此時,索引越界了,所以是亂碼。在writedate(dat[a]);  語句前面添加一條 a = a - '0';語句就不會有亂碼現(xiàn)象了。祝你學(xué)習(xí)愉快,謝謝。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久午夜视频 | 日韩综合在线播放 | 欧美中文字幕一区 | 91一区二区 | 亚洲精品一区二区三区蜜桃久 | 日韩欧美中文 | 精品一区二区三区中文字幕 | 免费观看av | 久久久精品影院 | 成人免费观看男女羞羞视频 | 国产高清视频在线观看 | 国产精彩视频在线观看 | 国产在线一区二区 | av片网站 | 在线国产一区二区 | 一区二区三区视频在线观看 | 久久久91精品国产一区二区三区 | 亚洲精品乱码久久久久久9色 | 国产欧美精品 | 亚洲视频在线观看 | 久久久久久久久久久久一区二区 | av在线视 | 欧美人成在线视频 | 国产精品一区在线 | 69性欧美高清影院 | 中文字幕视频在线观看免费 | 日韩欧美一区在线 | 福利在线观看 | 国产欧美精品 | 国产一区免费视频 | 男女久久久 | 欧美日韩视频网站 | 国产精品视频区 | 97久久精品午夜一区二区 | 日韩精品在线一区 | 午夜av电影院 | 亚洲最新在线 | 99re在线视频 | 日韩三| 亚洲精品视频在线播放 | 久久久久久国产 |