1. 51單片機,stm32,arino都是用什麼語言進行編程的
51單片機,STM32單片機用匯編或者C語言,現在基本都用C語言編程,Arino有自己的編程環境,用戶也是用C語言編程。
51單片機的編程
51單片機進入中國比較早,在早前用匯編編程比較多,我在上大學時也是學習的匯編編程,但是現在我用C語言編程,匯編已經不會了。51單片機比較常用的編程環境是Keil,現在Keil更新到Keil5了。如下是51單片機Keil的編程環境。
STM32單片機的編程
STM32單片機是意法半導體推出的高性價比、片上資源豐富的32位單片機,這個系列的單片機我一直在用,都是用C語言進行編程,官方推出的庫函數和HAL庫都是用C語言編程的,雖然有一部分匯編共存。STM32單片機用KeilMDK進行編程。
Arino的編程
Arino是一款做的非常成功的開源硬體,並且有自己的開發環境,將底層的寄存器設置都進行了封裝,用戶不用自己配置寄存器,調用封裝好的函數即可,可以在官方網站下載編程IDE。Arino旨在培養用戶的編程興趣,簡化了技術難度,很受歡迎。
在用戶層面,現在C語言編程已經是主流液敏,C語言的移植性和可讀性比匯編蔽槐語言有很大的優勢,也有鬧並枝很多人在使用匯編編程,尤其是涉及到底層時。
2. (!MCU_IO_GET(HAL_BOARD_IO_BUTTON_1_PORT, HAL_BOARD_IO_BUTTON_1_PIN))鍦ㄥ崟鐗囨満紼嬪簭涓榪欐槸浠涔堟剰鎬
HAL_BOARD_IO_BUTTON_1_PORT鏄絝鍙e彿錛屼緥濡侾1
HAL_BOARD_IO_BUTTON_1_PIN鏄絝鍙g殑浣嶏紝渚嬪俠it5
鍑芥暟鐨勬剰鎬濆氨鏄鍙朠1^5鐨勫綋鍓嶇姸鎬併
鍓嶉潰鐨勶紒鏄鍙栧弽鐨勬剰鎬濄備篃灝辨槸璇村傛灉P1^5涓洪珮鐢靛鉤榪欓噷榪斿洖0錛屽傛灉P1^5涓轟綆鐢靛鉤榪欓噷榪斿洖1銆
3. STM32 的 HAL 庫好用嗎
別人寫的 你參考一下:
半年前接觸 STM32,剛開始 MCU 用的 32F1,庫用的標准外設庫 3.5,寫過一些簡單的東西。
再後來發現 ST 還有一個軟體叫做 STM32 CUBE MX,可以自動的生成初始化程序,對於我這個 32 新手來說無疑是天降福音!終於不用為繁瑣的配置而苦惱了(其實就是自己對各項配置不熟,而且沒有自己積累的程序可以 Ctrl C + Ctrl V)。
雖然 CUBE 用的是 ST 新出的 HAL 庫,與以前的 標准外設庫完全不兼容,甚至基本的 I/O 操作都變了,會讓習慣了
標准外設庫的人很苦惱。但是我對標准外設庫也不是很熟,而且 CUBE 的界面化設計真的讓 配置工程變得很方便,再加上它還有一個類似於 FPGA
的引腳分配界面,讓資源分配,PCB 布局布線也方便了不少,於是我選擇了用 CUBE ,用 HAL 庫。
很早就開始的寫 32 的朋友有不少,他們也試過 HAL 庫,可最後無一例外都選擇了繼續使用標准外設庫。他們表示完全不習慣 HAL 庫,另外 HAL 庫不太好,畢竟是自動生成的配置,沒有自己手動配置的來得熟悉來得透徹,誰知道軟體是怎麼給你配置的工程。另外 CUBE 就是給那些不會寫 32 的人用的(ST 的官方的說法似乎也是 HAL 是為了方便做嵌入式相關且對底層不熟的人設計的,但想不通他為何要把兩個庫做得不兼容)。
前面一直在畫 PCB ,調 PCB ,做機械之類的,沒有寫程序。最近又開始寫 32,現在用的 MCU 是 32F4,庫是 HAL/F4庫 1.6.0。可是我發現我連 GPIO 的上拉輸出都實現不了,無論如何 I/O 始終默認輸出低電平(操作 I/O可以實現電平跳變),這個問題我昨天查了一天,從庫到最底層的寄存器都看了,可沒發現什麼問題。周圍用 HAL 庫的就我一個。。。
有些無奈了,難道 HAL 庫真有什麼問題嗎?如果真有這么明顯的問題,ST 官方肯定早就發現了。
已經下好了標准外設庫,打算換標准外設庫,工程從頭到尾都自己配置,這樣出了問題也更方便找。
可是我始終有一點想不明白,既然 ST 官方在推 HAL 庫,那肯定也有他的道理,我們也應該勇於接受新事物,為何身邊的朋友卻都不願意接納 HAL 庫。
4. 濡備綍閰嶇疆stm32f1鐨刪al搴
灝嗕笅杞藉ソ鐨勫滻浠跺簱娣誨姞鍒板伐紼嬬洰褰曚腑錛屽苟鍦ㄥ伐紼嬩腑娣誨姞鐩稿簲鐨勬枃浠訛紝浠ラ棯鐑丩ED鐏涓轟緥瀛愩
鏂板緩user銆乸roj鏂囦歡澶廣
澶嶅埗 STM32Cube_FW_F1_V1.4.0\Drivers\STM32F1xx_HAL_Driver\Inc 閲岀殑 stm32f1xx_hal_conf_template.h 鍒皍ser鐩褰曚腑錛屽苟閲嶅懡鍚嶄負stm32f1xx_hal_conf.h銆
澶嶅埗 STM32Cube_FW_F1_V1.4.0\Projects\STM32F103RB-Nucleo\Templates\Src 鏂囦歡澶歸噷闈㈢殑 stm32f1xx_it.c 浠ュ強 STM32Cube_FW_F1_V1.4.0\Projects\STM32F103RB-Nucleo\Templates\Inc 鏂囦歡澶歸噷闈㈢殑 stm32f1xx_it.h 鍒皍ser鏂囦歡澶逛腑銆傚傛灉stm32f1xx_it.c 涓璖ysTick_Handler 涓虹┖鐨勮瘽錛岃峰湪璇ユ枃浠剁殑鏀劇疆澶存枃浠剁殑鍦版柟娣誨姞#include "stm32f1xx.h" 濡備笅鍥炬墍紺猴細
錛
騫跺湪SysTick_Handler 鍑芥暟涓娣誨姞HAL_IncTick(); 錛屽備笅鍥炬墍紺猴細
銆
鏂板緩涓涓狢鏂囦歡錛岃緭鍏ヤ緥紼嬨
娣誨姞紼嬪簭浠g爜錛 STM32Cube_FW_F1_V1.4.0\Drivers\STM32F1xx_HAL_Driver\Src鏂囦歡澶歸噷闈㈢殑鍗曠墖鏈洪┍鍔ㄧ▼搴(鏍規嵁闇瑕佹坊鍔)銆 STM32Cube_FW_F1_V1.4.0\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates 鏂囦歡澶歸噷闈㈢殑 system_stm32f1xx.c 銆 STM32Cube_FW_F1_V1.4.0\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm 鏂囦歡澶歸噷闈㈢殑鍚鍔ㄦ枃浠(鏍規嵁瀹為檯鎯呭喌娣誨姞)銆 user 鏂囦歡澶歸噷闈㈢殑 stm32f1xx_it.c 鍜 gpio_demo.c 娣誨姞鍒板伐紼嬬殑紼嬪簭鏂囦歡濡備笅鍥炬墍紺猴細
娣誨姞鐨勫ご鏂囦歡璺寰勫備笅鍥炬墍紺猴細
鍦╟/c++緙栬瘧鍣ㄩ夐」瀹忓畾涔変竴鏍忎腑娣誨姞STM32F103xE,USE_HAL_DRIVER (鏌ョ湅stm32f1xx.h)錛屽備笅鍥炬墍紺猴細
緙栬瘧