Google Code Prettify

2018年6月20日 星期三

[STM32]如何使用STM32Cube

這是剛建立此Blog的第一篇文章,STM32Cube我本身其實已經使用了一段時間了,所以整理一些過程中比較容易遇到的問題或是一些小技巧來分享給大家。

開啟後的畫面如下
啟動後的畫面

找到Help的地方有個Manage embedded software package的選項,點下去會跳出管理package的頁面

點選Manage embedded software package

然後安裝自己使用的MCU所需要的Package,第一次使用如果忘記此步驟也沒關係,最後在產生專案時,它還是會跳出來要你安裝,由於檔案不小,加上ST的伺服器其實有點慢,安裝好的檔案會存放在C:\Users\UserName\STM32Cube\Repository,可以直接從其他已經安裝好的電腦Copy,若有複數的電腦需要安裝,可以省下不少時間。

安裝Package
 安裝完成後就可以開始使用,按下New Project會有MCU的清單,也可以點選左上角的Board Selector 以開發板來做選擇。

MCU選擇畫面

選擇完MCU或開發版後,會出現MCU的設定畫面,可以直接點選腳位來設定想要的功能,並由左列來設定相關參數,設定完成後,從Project裡點選Generate Code,細部功能該如何設定,之後會另外再寫一篇文章來做較詳細的介紹。

MCU腳位設定畫面
點選Generate Code後會出現下圖,設定完Project Name跟輸出路徑後,選擇自己的IDE。

選擇自己使用的IDE

打開專案後,記得設定自己的燒錄器及Port的類型。

把JTAG改成Single Wire
 如果有不能燒錄的情形,記得檢查一下Flash設定,早期的Cube產生的專案,會有沒有設定Flash的情形必須自行設定,目前新版本還沒有遇到這樣的問題。
Flash設定
程式是由Cube自動產生的,程式當中都會有Begin跟End的註解,寫在這兩者之間,使用Cube更改晶片設定,更新code的時候,使用者自行新增的部分就會保留了



  /* USER CODE BEGIN 2 */
 HAL_TIM_Base_Start_IT(&htim3);
 HAL_UART_Receive_IT(&huart1, (uint8_t *)&COM1.aRxBuffer, 1) ;
 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,1);
 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
 
  /* USER CODE END 2 */

[STM32]使用Timer中斷

前一個實驗,使用IO來控制LED,並且運用Delay的副程式來讓LED一秒切換一次狀態,但是這樣的作法實際上並不理想,大多數Delay的副程式是使用while迴圈來讓程式空轉,達到延時或計時的效果,這意味著在這空轉的期間,系統的主程式沒辦法做讓何事情。 為了使程式在使用上更有...