2015年11月7日 星期六

[stm32] 第一次使用stm32cube

雖然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的話,一定要加在BEGINEND的中間,這樣才不會再次產生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使用的狀況。

沒有留言:

張貼留言