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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7579|回復: 17
打印 上一主題 下一主題
收起左側

51單片機的串口亂碼問題

  [復制鏈接]
跳轉到指定樓層
樓主
從上位機發送一位數字到單片機,(例如發送8),使用  a=SBUF;去接收這個數字,此后在將a送給1602顯示發現是亂碼,
unsigned char code dat[10]={'0','1','2','3','4','5','6','7','8','9'};     
                        writecom(0x80);                 
                        writedate(dat[a]);   //大致的顯示部分
求問是什么原因,是否需要通過scanf函數去接受串口送來的數據才行,可是這個函數該怎么使用呢,求教各位大神。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:111634 發表于 2017-10-14 23:11 | 只看該作者
scanf函數不能接受串口送來的數據。keil c中的scanf和printf函數并非80C51串行口真正的I/O操作,而是C51編譯器利用80C51串行口,通過C51庫函數“Stdio.h”在PC機上輸入/輸出數據信息。
回復

使用道具 舉報

板凳
ID:164363 發表于 2017-10-14 23:57 | 只看該作者
顯示函數有問題
回復

使用道具 舉報

地板
ID:239563 發表于 2017-10-15 09:05 | 只看該作者
先用串口助手調一下試試
回復

使用道具 舉報

5#
ID:239244 發表于 2017-10-15 10:04 | 只看該作者
zl2168 發表于 2017-10-14 23:11
scanf函數不能接受串口送來的數據。keil c中的scanf和printf函數并非80C51串行口真正的I/O操作,而是C51編 ...

是嗎,scanf和printf只能在和上位機通信的時候用嗎。。。。
回復

使用道具 舉報

6#
ID:111634 發表于 2017-10-15 19:01 | 只看該作者
Endover 發表于 2017-10-15 10:04
是嗎,scanf和printf只能在和上位機通信的時候用嗎。。。。

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



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

使用道具 舉報

7#
ID:221145 發表于 2017-10-15 22:22 | 只看該作者
首先確認MCU收到了正確的數據,然后確認1602顯示驅動程序是正常的;scanf函數可以百度一下;
回復

使用道具 舉報

8#
ID:123289 發表于 2017-10-16 00:05 | 只看該作者
很簡單,顯示是由點陣或段構成的,它不懂12345……,只知道什么地方亮,什么地方暗。你讓它顯示1,送1給它無用,要送1所對應的點陣才行。
回復

使用道具 舉報

9#
ID:219796 發表于 2017-10-16 01:46 來自手機 | 只看該作者
加減48試試
回復

使用道具 舉報

10#
ID:239880 發表于 2017-10-16 13:20 | 只看該作者
波特率沒設置對吧
回復

使用道具 舉報

11#
ID:239244 發表于 2017-10-16 15:36 | 只看該作者

試過了,不行。。。。
回復

使用道具 舉報

12#
ID:239244 發表于 2017-10-16 15:37 | 只看該作者
hello1314 發表于 2017-10-16 13:20
波特率沒設置對吧

波特率沒問題啊
回復

使用道具 舉報

13#
ID:151348 發表于 2017-10-16 16:37 | 只看該作者
亂碼的原因有很多,把程序貼上來看看
回復

使用道具 舉報

14#
ID:47286 發表于 2017-10-16 17:22 | 只看該作者
1602不能直接顯示HEX吧 要轉換成DEC然后一位一位顯示吧
回復

使用道具 舉報

15#
ID:239991 發表于 2017-10-16 17:53 | 只看該作者
波特率是否正常
回復

使用道具 舉報

16#
ID:228543 發表于 2017-10-16 18:06 | 只看該作者
是不是波特率設置不對啊
回復

使用道具 舉報

17#
ID:79358 發表于 2017-10-17 11:38 | 只看該作者
接收到的是字符串,在1602上顯示ASCII碼 顯示函數后面加個0X48 試試
回復

使用道具 舉報

18#
ID:240256 發表于 2017-10-17 15:24 | 只看該作者
單片機從上位機接收到的數據是ASCII碼格式(你發送8則對應的ASCII嗎值為56),你將該數據保存在變量a,通過dat[a]獲取對應的數據,此時,索引越界了,所以是亂碼。在writedate(dat[a]);  語句前面添加一條 a = a - '0';語句就不會有亂碼現象了。祝你學習愉快,謝謝。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜男人免费视频 | 久久在线| 中文字幕电影在线观看 | 91成人在线视频 | 国产精品a免费一区久久电影 | 男女啪啪高潮无遮挡免费动态 | 亚洲少妇综合网 | 亚洲精品在线免费观看视频 | 国产精品99久久久久久动医院 | 亚洲欧美激情精品一区二区 | 天天操网 | 99精品国产一区二区三区 | 特级黄一级播放 | 欧美性a视频 | 麻豆精品久久久 | 国产亚洲一区二区三区在线观看 | 日本欧美国产在线观看 | 欧美在线一区二区三区 | a级免费视频 | 亚洲视频免费在线看 | 国产亚洲一区二区三区在线观看 | 成人av网站在线观看 | 99精品热视频 | 蜜桃视频在线观看免费视频网站www | 国产视频一区二区 | 亚洲欧美日韩中文字幕一区二区三区 | 日韩中文字幕 | 美女在线一区二区 | 天天搞天天操 | 久久精品 | www.av在线 | 99九九视频 | 免费av手机在线观看 | 日韩毛片免费看 | 一级美国黄色片 | 中文字幕在线剧情 | 久久久久久999 | 欧美大片黄 | 小草久久久久久久久爱六 | 91久久久久久 | 久久久毛片 |