<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnCH395Q" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
資料說明
首先說明一下學習資料源碼,在資料中有51單片機,stm32相關的例程.
用戶可根據自己的情況選擇使用.
說明
我提供的例程是作為具體的講解使用.默認以SPI通信為主.
提供的代碼是使用STM32F103單片機編寫的.
測試下這節的程序
1.用戶可以使用杜邦線根據自己的情況設置和連接引腳
2,注意!
要想模塊使用SPI通信,模塊的TX引腳需要在模塊重啟之前設置為低電平.
上面的引腳分配把模塊的TX引腳接到了單片機的PA3上,也就是串口2的RX上,如果用戶使用了串口2,請注意!
3.打開這節的程序
這一節測試使用SPI方式和模塊進行通信,然后獲取模塊的芯片版本
4,我使用測試板進行測試
5,把程序下載到開發板,監控下單片機串口1打印的信息
注:也可能打印46..... 版本不一樣
關於版本號
不同的版本號功能上有差異,版本號越高越好
50910E227 代表 版本2
50910E228 代表 版本4
推薦購買228或大於此數字的芯片.也就是4版本及其以上
版本功能主要差異:
假設使用芯片作為TCP服務器.
4版本及其以上的芯片支持多路TCP客戶端連接其TCP服務器.
4版本以下的芯片只支持單路TCP客戶端連接其TCP服務器
CH395Q獲取可以通過 CMD_GET_GLOB_INT_STATUS 和 CMD_GET_GLOB_INT_STATUS_ALL 兩個命令來獲取中斷狀態,
前者只能獲取到低 8 位的中斷狀態,后者可以獲取全部的中斷狀態,使用時需要注意,任何版本的芯片都支持 CMD_GET_GLOB_INT_STATUS 命令,
如果芯片版本號大於等於 0X44 且使用了Socke4– Socke7 則只能用 CMD_GET_GLOB_INT_STATUS_ALL。
芯片版本號小於 0X44 不支持CMD_GET_GLOB_INT_STATUS_ALL 命令。
關於設備MAC地址
程序移植使用說明
1.把以下文件夾放到自己的工程
2.添加個分組,分組里面添加CH395SPI.C和CH395CMD.C文件; 包含頭文件路徑
3.根據自己的情況替換延時函數
4.如果用戶使用的STM32F103系列的單片機的是硬件SPI,只需要修改這個地方即可
5.如果用戶使用的其它型號的單片機,還需要替換后面程序
6.如果用戶使用的其它型號的單片機,根據自己的情況修改引腳初始化
提示: SPI通信方式 CPOL=0, CPHA=1
CLK空閑狀態為低電平,在第二個沿開始采集數據
7.如果用戶使用的其它型號的單片機,根據自己的情況修改SPI函數
8.根據下面的步驟測試即可
9.關於文件
紅框內的是通用文件,咱和模塊通信調用的就是CH395CMD.C里面的函數
然后CH395CMD.C里面的函數再調用綠框里面的SPI接口文件和模組進行通信.
藍框是代表不同的通信方式封裝的文件,當前並沒有用到.也並未編寫完整並不能使用...
PARA : 並口
SPI_SW: 模擬SPI
UART: 串口
如果使用其它通信方式,修改完通信方式文件以后,記得在CH395CMD.C里面包含接口函數頭文件