目錄
- 一、 作業原理
- (一)串口通信協議和RS232串口標準
- (二)RS232電平與TTL電平的區別
- (三)USB轉串口原理
- 二、搭建STM32的開發環境
- (一)安裝 JDK
- (二)安裝MDK5
- (三)安裝 stm32CubeMX
- 三、用GPIO埠完成3只LED紅綠燈的周期閃爍
- (一)用stm32CubeMX初始代碼
- (二)修改代碼并編譯
- (三)燒錄運行
- 四、3個GPIO埠的輸出波形
- 參考文獻
一、 作業原理
(一)串口通信協議和RS232串口標準
串口通信協議
串口通信指串口按位(bit)發送和接收位元組,盡管位元位元組(byte)的串行通信慢,但是串口可以在使用一根線發送資料的同時用另一根線接收資料,串口通信協議是指規定了資料包的內容,內容包含了起始位、主體資料、校驗位及停止位,雙方需要約定一致的資料包格式才能正常收發資料的有關規范,在串口通信中,常用的協議包括RS-232、RS-422和RS-485
RS232串口標準
RS232串口標準是美國EIA(電子工業聯合會)與BELL等公司一起開發的通信協議,它適合于資料傳輸速率在0~20000bit/s范圍內通信,RS232作為一種標準,被廣泛應用于計算機與外設間的一種常通信介面,其中外設應用種類繁多,如:列印機、資料采集模塊、測驗裝置和各種控制回路,甚至RS232串行介面還可用于計算機之間的簡單連接上,
(二)RS232電平與TTL電平的區別
RS232電平與TTL電平的區別
- TTL電平信號之所以被廣泛使用,原因是因為:通常我們采用二進制來表示資料,而且規定,+5V等價于邏輯“1”,0V等價于邏輯“0”,這樣的資料通信及電平規定方式,被稱做TTL(晶體管-晶體管邏輯電平)信號系統,這是計算機處理器控制的設備內部各部分之間通信的標準技術,
- rs232是個人計算機上的通訊介面之一,由電子工業協會(Electronic Industries AssociaTIon,EIA)所制定的異步傳輸標準介面,通常 RS-232 介面以9個引腳 (DB-9) 或是25個引腳 (DB-25)的型態出現,一般個人計算機上會有兩組 RS-232 介面,分別稱為 COM1 和COM2,RS232的電平標準為+12V為邏輯負,-12為邏輯正,TTL電平為5V為邏輯正,0為邏輯負
(三)USB轉串口原理
USB轉串口原理
USB主機檢測到USB轉串口設備插入后,首先會對設備復位,然后開始USB列舉程序,USB列舉時程序會獲取設備描述符、配置描述符、介面描述符等,描述符中會包含USB設備的廠商ID,設備ID和Class類別等資訊,作業系統會根據該資訊為設備匹配相應的USB設備驅動,
USB虛擬串口的實作在系統上依賴于USB轉串口驅動,一般由廠家直接提供,也可以使用作業系統自帶的CDC類串口驅動等,驅動主要分為2個功能,其一注冊USB設備驅動,完成對USB設備的控制與資料通訊,其二注冊串口驅動,為串口應用層提供相應的實作方法,
二、搭建STM32的開發環境
(一)安裝 JDK
- 由于STM32CubeMX是Java實作的,需要先安裝JDK環境,
官網地址:https://www.oracle.com/java/technologies/javase-downloads.html
(二)安裝MDK5
參照:搭建并配置Keil嵌入式開發環境,完成一個基于STM32匯編程式的撰寫
(三)安裝 stm32CubeMX
stm32CubeMX下載地址:https://www.st.com/en/development-tools/stm32cubemx.html

下載好后,點擊開始安裝,Next,

同意協議,Next,

勾選第一個,Next,

選擇安裝路徑(不要有中文),然后Next,確定,

next,

等待,

Next,

點擊Done,安裝完成,

雙擊打開,點擊,

勾選依賴包,Install now,

等待安裝,

三、用GPIO埠完成3只LED紅綠燈的周期閃爍
(一)用stm32CubeMX初始代碼
打開stm32CubeMX,New一個Project,選擇芯片,點星星?,然后右邊Start Project,

點擊System Core,再點擊SYS,在debug選項中選擇Serial Wire

點擊Clock Configuration,選擇PLLCLK,

點擊System Core,再點擊RCC,在HSE選項中選擇Crystal/Ceramic Resonator,

點擊相應的引腳設定輸出暫存器,選擇output那一項,選擇PA0,PB9,PC15,

點擊project manager,填寫路徑和專案名,將IDE改為MDK-ARM,

進入code generate界面,選擇生成初始化.c/.h檔案,后面點擊generate code,之后等待一下,

點擊Open從Keil打開,

(二)修改代碼并編譯
打開專案之后,打開main.c檔案,找到while函式在里面添加實作功能的代碼,
HAL_Delay(500);//延時0.5s
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);//PA0熄燈
HAL_Delay(500);//延時0.5s
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮燈
HAL_Delay(500);//延時0.5s
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄燈
HAL_Delay(500);//延時0.5s
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮燈
HAL_Delay(500);//延時0.5s
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄燈
HAL_Delay(500);//延時0.5s

編譯生成hex檔案,


(三)燒錄運行
打開FlyMcu,如圖操作,

開始編程,成功,
實作流水燈
四、3個GPIO埠的輸出波形
點擊魔法棒,設定Debug,

除錯,

選擇邏輯分析儀,

點擊Setup,添加引腳,輸入(PORTB & 0X00000000)>>0、Display Type選擇Bit,依次輸入(PORTA & 0X00008000)>>15、(PORTC & 0X00002000)>>13,

然后觀察波形,
參考文獻
串口通信知識點總結
搭建STM32開發環境——STM32CubeMX,Keil5
STM32 觀察波形
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342293.html
標籤:其他
上一篇:資料采集傳輸儀鋼鐵廠環境污染監測
