小熊派4G開發板開發體驗丨【拜托了,物聯網!】
開發板硬件資源介紹
之前小熊派發布了一款超高性價比的4G開發板(19.8元包郵),小熊派官方給我送了一塊,我們一起來學習學習:
板子做得小巧精致,控制核心用的是移遠的EC100Y LTE Cat1無線通信模組,該模組可對所有用戶開放二次開發;EC100Y LTE Cat1模組兩側座子/排針是E53接口,可接小熊派的E53拓展模塊,如:
小熊派4G開發板與其E53接口拓展模塊配合來使用就可以做各種豐富的實驗。EC100Y LTE Cat1模組下方是一個SIM卡槽,支持全網通。SIM卡卡槽左側預留了幾個排針孔,連著兩個串口,可根據需要焊接排針來使用。板子頂部是一個小辣椒天線。板子左下角有一個攝像頭接口與一個音頻輸入/輸出接口。板子右下角是4個按鍵:BOOT按鍵、RESET按鍵、POWER按鍵、用戶按鍵。板子最下方是一個USB口。
開發板入網測試
1、SIM卡槽插入一張手機卡
SIM卡插入一張手機卡,支持全網通,我這里用的是移動4G卡。
2、串口助手發送AT指令進行測試
AT+CPIN? : 查詢SIM卡狀態 AT+CSQ : 查詢信號質量 AT+CGATT? : 查詢是否附著網絡
以上圖片是入網成功的情況,如果不成功則需要檢查SIM卡有沒有插反、COM號有沒有選對等等。
開發板OPENMCU開發
OPENMCU是一種以模塊作為主處理器的應用方式。這里就是把移遠的EC100Y LTE Cat1無線通信模組作為主處理器的應用。
1、SDK軟件開發包
我們主要需要關注的是ql-application文件夾,一般的開發主要都是在這里面添代碼。
2、生成固件
一種方法是自己搭建相關編譯環境,另一種方法是直接用SDK包里面的編譯工具。SDK包中相關的工具在ql-cross-tool中。為了簡單省事,我們直接使用SDK包給我們提供的編譯工具。
圖片來自移遠官方文檔。
可見,固件打包需要用到一些鏡像,主要分為四大塊:kernel鏡像、bootloader鏡像、app鏡像、其它鏡像。
SDK包中有兩個編譯相關的批處理文件:build.bat、build_all.bat。其中:
build_all.bat:提供整體編譯的功能,即雙擊這個批處理文件就會執行上面四大塊鏡像的編譯及打包生成固件的過程。但一般我們都只是修改APP相關的代碼,沒有必要全部編譯。
所以,SDK包中給我們提供了build.bat批處理文件,我們可以在命令行指定一些參數來執行相應的過程,如:
build.bat bootloader命令:只編譯bootloader build.bat kernel命令 :只編譯kernel build.bat app命令 :只編譯app build.bat firmware命令 :生成固件包
因為我們平時開發基本上只是修改了app,所以大多數情況下都是只需要這兩條命令:
build.bat app命令 :只編譯app build.bat firmware命令 :生成固件包
win7環境下在sdk路徑下快捷操作進入cmd窗口的方法:
與上面操作相同,在win10環境下可在sdk路徑下進入Power shell窗口。當然,win10下也可以進入cmd窗口,然后再進入sdk路徑。其中,在Power shell窗口中運行的編譯命令與在cmd窗口中運行的編譯命令有點不一樣,在Power shell窗口中需要加上.\,如:
執行這個編譯命令時,會自動找到ql-cross-tool里的編譯工具來編譯我們的程序。
生成固件操作:
固件存放的路徑:
我們并沒有編譯bootloader與kernel,那么生成固件需要的bootloader鏡像與kernel鏡像又是從哪來?
其實,SDK包給我們提供了一組出廠的鏡像,存放在路徑ql-sdk\ql-config\quec-project\aboot\images下:
所以,當我們執行完編譯app的命令,并執行生成固件包的命令時,大致過程如下:
當我們需要恢復出廠設置的時候,可以下載出廠自帶的那組鏡像,此時我們需要先執行如下清除命令:
build.bat kernel/bootloader/app clean命令
分別清除這三大模塊編譯生成的一些文件,然后再打包生成固件。
sdk包中已經給我們做好了一個hello例程:
一般printf都是重定向到串口,小熊派4G開發板也有引出debug串口的排針孔,我們可以焊接排針來使用;但是小熊派這里給我們提供了另一種更方便的方法,重新封裝一個打印函數,打印信息通過USB口輸出。
還需要注意的是Makefile文件的修改。這里需要修改兩個Makefile文件,一個是ql-sdk\ql-application\threadx\interface\init\example下的Makefile文件:
另一個是ql-sdk\ql-application\threadx\下的Makefile文件:
編譯、生成固件前面已經介紹過了。下面看一下如何下載固件到板子里:
打開aboot工具,找到我們編譯生成的.zip后綴的固件,點擊start:
下載成功,點擊back返回。然后按下板子的RESET鍵復位板子。
這里需要隨意發送一串字符串觸發我們的輸出,至于為什么要這樣,后續還需研究研究。另外,有些電腦可能識別不出這個USB串行設備,那打印輸出的信息就沒辦法從USB口輸出。我有兩臺電腦,剛開始用另一臺開發,發現一直識別不出這個USB串行設備,各種重啟、重裝驅動的方法也都試過,還是沒用。然后我換用另一臺電腦,另一臺電腦竟然可以識別。所以可能原因有:
①電腦USB口輸出電流不足。小熊派這個USB口的輸入的電流有一定的要求,電腦的USB口輸出的電流不足板子可能就不正常;
②系統的問題。我一臺電腦裝的是win7、另一臺電腦裝的是win10。裝win10的那臺電腦可以正常識別這個USB串行設備,win7的那一臺識別不了。
我們創建一個example_led.c文件,與上面的example_helloworld.c放在同一個路徑下,并編寫如下代碼:
#include "ql_application.h" #include "ql_gpio.h" #include
這里需要注意的是:這里的引腳號并不是原理圖上標的(原理圖上標的是引腳名)。每個引腳都有好幾種模式/功能,我們需要查看《Quectel_EC100Y_QuecOpen硬件設計手冊V1.0.pdf》的功能復用表查看真正的引腳號:
這里我們創建了一個led配置表,這樣方便添加、修改LED的配置。創建表的形式有時候更清晰一些,關于表驅動的相關文章:
C語言精華知識:表驅動法編程實踐
空間換時間,查表法的經典例子
修改同目錄下的Makefile文件:
編譯、生成固件,下載固件,可以看到LED閃爍的現象。
【拜托了,物聯網!】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/299476
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。