文中介紹的可能有一些繁瑣,因?yàn)橐彩窍虢忉尩母宄恍?,但是小弟希望大家能認(rèn)真看完。
市面上關(guān)于ch376串口的知識(shí)介紹不多,可以說(shuō)基本沒(méi)有,博主當(dāng)時(shí)也廢了一些力氣,在此希望給大家一些幫助,認(rèn)真看完絕對(duì)會(huì)使用ch376讀、寫(xiě)、txt、csv文件。??(在此提一嘴,ch375這款芯片確實(shí)也能使用串口讀寫(xiě)U盤(pán),但是375的數(shù)據(jù)傳輸不是常規(guī)的8位數(shù)據(jù)傳輸,也就是說(shuō)我們調(diào)起來(lái)會(huì)非常的費(fèi)勁,376是常規(guī)的8位數(shù)據(jù)傳輸,建議大家使用ch376)
ch376使用串口通訊時(shí),波特率為9600、數(shù)據(jù)以十六進(jìn)制發(fā)送。
一、讀txt文件
發(fā)送的命令 | 命令用途 | 正常返回?cái)?shù)據(jù) |
57 AB 06 EE | 測(cè)試通訊接口和工作狀態(tài)(EE為測(cè)試數(shù)據(jù),返回按位取反,也就是11) | 11 |
57 AB 15 06 | 選擇U盤(pán)模式 | 51 15 |
57 AB 30 | 檢查磁盤(pán)是否連接 | 14 |
57 AB 31 | 初始化磁盤(pán) | 14 |
57 AB 2F 31 2E 54 58 54 00 | 設(shè)置將要操作的文件(31 2E 54 58 54為文件名1.TXT,以00結(jié)尾) | 不返回 |
57 AB 32 | 打開(kāi)文件 | 14 |
57 AB 3A 04 00 | 設(shè)置要讀取的字節(jié)數(shù)(04 00為要讀取四個(gè)字節(jié)數(shù)據(jù),采用大端對(duì)齊。如果要讀取1個(gè)字節(jié)數(shù)據(jù),則發(fā)送01 00) | 1D |
57 AB 27 | 讀取數(shù)據(jù) | 返回 字節(jié)數(shù)+1.TXT中的數(shù)據(jù) |
57 AB 3B | 繼續(xù)字節(jié)讀指令 | 14 |
大家千萬(wàn)不要把最后一條指令57 AB 3B遺忘了,這時(shí)候有人問(wèn):“我只寫(xiě)一次,為什么還要發(fā)送繼續(xù)字節(jié)讀呢?”,,,官方數(shù)據(jù)手冊(cè)中規(guī)定(雖然我試過(guò)不加也好使,但咱們還是做個(gè)乖寶寶,跟著手冊(cè)來(lái),哈哈哈)?
現(xiàn)象:
??? ? ??
? ? ? ? ? ? ? ? ? 所創(chuàng)建的文件及內(nèi)容? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用ch376讀取返回的數(shù)據(jù)
?
二、寫(xiě)txt文件
發(fā)送的命令 | 命令用途 | 正常返回?cái)?shù)據(jù) |
57 AB 06 EE | 測(cè)試通訊接口和工作狀態(tài)(EE為測(cè)試數(shù)據(jù),返回按位取反,也就是11) | 11 |
57 AB 15 06 | 選擇U盤(pán)模式 | 51 15 |
57 AB 30 | 檢查磁盤(pán)是否連接 | 14 |
57 AB 31 | 初始化磁盤(pán) | 14 |
57 AB 2F 32 2E 54 58 54 00 | 設(shè)置將要操作的文件(32 2E 54 58 54為文件名2.TXT,以00結(jié)尾) | 不返回 |
57 AB 34 | 打開(kāi)文件 | 14 |
57 AB 3C 02 00 | 設(shè)置要寫(xiě)入的字節(jié)數(shù)(02 00為要讀取四個(gè)字節(jié)數(shù)據(jù),采用大端對(duì)齊。如果要寫(xiě)入1個(gè)字節(jié)數(shù)據(jù),則發(fā)送01 00) | 1E |
57 AB 2D 31 32 | 寫(xiě)入數(shù)據(jù) | 所寫(xiě)入的字節(jié)數(shù)(本例子中是02) |
57 AB 3D | 繼續(xù)字節(jié)寫(xiě)指令 | 14 |
57 AB 36 31 | 關(guān)閉文件并保存 | 14 |
大家千萬(wàn)千萬(wàn)不要把最后兩條指令57 AB 3D? ? 57 AB 36 31遺忘了,這個(gè)和讀的時(shí)候還不太一樣,讀的時(shí)候不加好使,寫(xiě)的時(shí)候不加這兩條指令,數(shù)據(jù)不會(huì)保存。數(shù)據(jù)只在內(nèi)存中,而不被寫(xiě)入到文件中
現(xiàn)象:
??
?三、創(chuàng)建CSV文件并寫(xiě)入數(shù)據(jù) (U盤(pán)中事先沒(méi)有這個(gè)文件)
在說(shuō)指令之前,首先說(shuō)一些要寫(xiě)表格文件需要注意的問(wèn)題,我們寫(xiě)表格總要換行換列寫(xiě)吧,不可能在一個(gè)單元格中存放所有的數(shù)據(jù)吧,所以我們需要注意換行換列問(wèn)題。
換行:0X0D? ?0X0A? ? ? ? ? ? ?換列:0X2C? 0X20
? ? ?
命令介紹:
發(fā)送的命令 | 命令用途 | 正常返回?cái)?shù)據(jù) |
57 AB 06 EE | 測(cè)試通訊接口和工作狀態(tài)(EE為測(cè)試數(shù)據(jù),返回按位取反,也就是11) | 11 |
57 AB 15 06 | 選擇U盤(pán)模式 | 51 15 |
57 AB 30 | 檢查磁盤(pán)是否連接 | 14 |
57 AB 31 | 初始化磁盤(pán) | 14 |
57 AB 2F 31 2E 43 53 56 00 | 設(shè)置將要操作的文件(31 2E 43 53 56為文件名1.CSV,以00結(jié)尾) | 不返回 |
57 AB 34 | 打開(kāi)文件 | 14 |
57 AB 3C 04 00 | 設(shè)置要寫(xiě)入的字節(jié)數(shù)(04 00為要讀取四個(gè)字節(jié)數(shù)據(jù),采用大端對(duì)齊。如果要寫(xiě)入1個(gè)字節(jié)數(shù)據(jù),則發(fā)送01 00) | 1E |
57 AB 2D 31 2C 20 32 | 寫(xiě)入數(shù)據(jù)(這里注意,我們上一條指令設(shè)置本次寫(xiě)入的字節(jié)數(shù)為04,但由于換列操作2C 20占了兩個(gè)字節(jié),所以說(shuō)實(shí)際傳輸?shù)臄?shù)據(jù)為兩個(gè)字節(jié),分別為31 32) | 所寫(xiě)入的字節(jié)數(shù)(本例子中是04) |
57 AB 3D | 繼續(xù)字節(jié)寫(xiě)指令 | 14 |
57 AB 36 31 | 關(guān)閉文件并保存 | 14 |
?四、追加CSV文件中的數(shù)據(jù) (U盤(pán)中事先就有這個(gè)文件,在最后追加數(shù)據(jù))
?除28行、29行、31行外追加數(shù)據(jù)與上面介紹的三 沒(méi)有什么區(qū)別,下面就著重說(shuō)一些28 29 31
28:由于我們實(shí)在原有文件中追加數(shù)據(jù),所以只需打開(kāi)原有文件就行,所以是命令 57 AB 32 而不是創(chuàng)建命令 57 AB 34
29:因?yàn)槲覀冏芳訑?shù)據(jù)肯定是在最后追加,所以需要將指針調(diào)整至數(shù)據(jù)尾端,57 AB 39 FFFFFFFF
其中FFFFFFFF就是代表末尾的意思,也就是最后一個(gè)數(shù)據(jù)所在的單元格
31:為什么傳輸?shù)臄?shù)據(jù)要先加一個(gè)0D 0A? 因?yàn)槲覀冋{(diào)整完指針之后,指向最后一個(gè)單元格,所以需要先來(lái)一個(gè)換行指令0D 0A,使指針指向新的單元格。
?? ? ??
?沒(méi)加0D 0A直接補(bǔ)加數(shù)據(jù) 3、4? ? ? ? ? ? ? ? ? ? ? ? 加了0D 0A后補(bǔ)加數(shù)據(jù) 3、4
五、完整工程鏈接
該工程是基于STM32單片機(jī)開(kāi)發(fā)的,使用USART2與CH376進(jìn)行通訊,將數(shù)組中的數(shù)據(jù)寫(xiě)入到CSV文件中(也兼容TXT文件,只需稍作修改即可,有問(wèn)題可聯(lián)系博主。
基于STM32+CH376串口模式讀寫(xiě)U盤(pán)-淘寶網(wǎng) (taobao.com)
有疑問(wèn)的地方歡迎大家指正,評(píng)論或私聊都可以
能否看在小弟如此細(xì)致分享的份上,給個(gè)關(guān)注吧,各位鐵鐵!!
制作不易,感謝大家支持,感謝?。。。。。?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-594516.html
? --------------一個(gè)正在努力的人文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-594516.html
到了這里,關(guān)于CH376的串口模式操作U盤(pán)(讀、寫(xiě)、txt文件、csv文件、串口調(diào)試講解、stm32程序)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!