雖然stm32cube出了一段時間了,但到了最近才有空來研究stm32cube的使用方式,有興趣的話可以去
官網下載來玩看看
這次使用的的板子是stm32f4 discovery的板子,最簡單就是先測試led。
所以就先設定了GPIOD12/GPIOD13/GPIOD14/GPIOD15為Output
可以在gpio的腳位上按滑鼠左鍵,設定為output即可
接著輸出路徑後,直接產生source code和report,我是以keil為主。
在keil的燒錄的設定,記得將JTAG改成SW
而flash的設定,記得把stm32f4加進來
在option的部分,為了好分辨,請修改output name,如果有使用STM32 ST-LINK Utility的話,最好也產生hex檔
程式的部分的話,比較值得注意的地方:因為是自動產生source code,所以如果要加code的話,一定要加在BEGIN和END的中間,這樣才不會再次產生source code 導致自己的code不見了。
因為只是要簡單的測試,所以就讓led閃一閃就好了,程式碼也很簡單,其實我一開始也不知道應該call 什麼API,不過進去看gpio的source code,很快的就知道我要call HAL_GPIO_TogglePin()了:也就是其實只要有一點stm32的概念,其實是不難的才對。
int main(void)
{
/* USER CODE BEGIN 1 */
int index;
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
for (index = 0; index < 500000; index++);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
最後,這個就是此次我輸出的report
心得:stm32cube其實有點顛覆以往寫code的方式,可以重複的修改HAL(硬體抽象層),以管理專案的角度的話,直接產生PDF report,就算不用看code,也可以很清楚的知道此次專案使用的狀況,這對於軟體或體硬的工程師來說,可以很快的讓雙方都清楚的了解MCU使用的狀況。