ch375接收問題

我的程序可以寫,可是卻不能收,用的是三線制,在寫完兩個啟動碼后,進入到接收子程序,但是RI卻始終是0,不知道為什么收不到數據,好像沒有啟動一樣

(1)前一貼中關于模塊模式問題解決沒? (2)雙方波特率是否匹配?若失配,模塊無法正確收到數據,自然不會應答;模塊波特率可通過配置工具讀取 (3)命令格式是否正確?錯誤的命令,模塊同樣不會應答。 (4)硬件連線是否正確 模塊-------------用戶單片機 RXD----------------TXD TXD----------------RXD GND----------------GND


是375串口問題還是模塊的串口問題?樓主說明啊 如果是375的串口的問題你的話,你先測量一下26,25腳是不是分別為高電平,低電平

檢查是否為9位串口,波特率誤差和是否匹配. 可以把程序貼出來看看


前一帖的問題已經明白解決,謝謝了 我的問題是在ExecCommand()這個子函數里 因為寫已經通過,TI標志可以在寫完后被置1,說明我的波特率應該沒有錯 命令格式用的是例程里面的, unsigned char mRecvByte( ) { unsigned char c; while ( RI0 == 0 ); c = SBUF0; RI0 = 0; return( c ); } 很簡單,不會有錯,接線已經核實過了


即使波特率不正確,發(fā)送數據的時候TI也會變1,還是需要檢查波特率以及將你的程序這樣修改下: unsigned char mRecvByte( ) { unsigned char c; TI0=0; while ( RI0 == 0 ); c = SBUF0; RI0 = 0; return( c ); }


哦,原來是這樣,謝謝了


我試過了RI標志位可以通過了,但是接收到的數值總為0 請問是什么原因,是否是我的設置還有問題


還需要看下你設置波特率的設置。以及晶振是多少


我使用的是c8051f350 單片機是24.5M的 波特率設置為9600 以下是我單片機的波特率設置

SCON0 = 0x90; //設置uart為9位方式 CKCON=0x80 ; //定時器控制字 TMOD =0x20; //設置定時器1為8位定時器 TH1=0x96; TR1 = 1;

我就只使用了插拔u盤的確認那段程序,后面的都先沒有用


(1)你操作的究竟是U盤讀寫模塊,還是CH375B芯片呢?若是前者,那么UART應為8位方式,后者才是9位方式 (2)內部晶振,波特率有點誤差,換個外部晶振22.1184MHz則沒誤差


謝謝,晶振的問題已經解決了,但是在我運行程序的時候,發(fā)現下面這句話不能通過 if ( mCmdParam.Status.mDiskStatus >= DISK_CONNECT ) break; /* U盤已經連接 */

mCmdParam.Status.mDiskStatus的值始終是0x00,但是刪除這句話,u盤仍然可以進行讀寫數據等操作 請問是什么原因,還有如果我想判斷u盤是否連接上如何操作


如果能夠讀寫,那么模塊一定是檢測到U盤已連接,否則讀寫肯定出錯 i = ExecCommand( CMD_QueryStatus, 0 ); /* 查詢當前模塊的狀態(tài) */ 成功沒?


成功了 mCmdParam.Status.mDiskStatus 這個變量的值是什么時候改變的呢?


這個變量在你做完DISK-READY之后會變?yōu)?X02


在例程里您 DISK-READY 那一部分在判斷之后,這也是為什么沒有變的原因,加到前面去就好了 謝謝了,程序已經通過了,謝謝


按照模塊的操作來說,首先你要把模塊配置成不自動插拔同時需要將模塊配置成大端格式,這個時候,在你插上U盤之后,這個變量應該就會改變的。插上U盤之后,這個變量會變?yōu)?X01,在做完DISK-READY之后,這樣變量會變?yōu)?X02,如果沒發(fā)生變化的話,那就需要去看下你接收的是什么數據了。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频