發表文章

目前顯示的是 11月, 2024的文章

stm32 設定 pwm

圖片
 stm32cubeMX 選用 stm32f103c8t6 目標 PWM 選擇 Timer1, Channel 2 系統 Clock 使用 8MHz 使用 pwm 輸出1kHz波形 設定流程 1. 左邊欄欄位 Timers 選 TIM1 2. 中間 TIM1 Mode and Configuration, Mode Clock Source 選擇 Internal Clock Channel 2 選擇 PWM Generation CH2 3. 中間下方 Parameter Settings Counter Setting 選項 prescaler 設定 7 Counter Period(AutoReload Register) 設定 999 auto-reload preload 設定 Enable PWM Generation Channel 2 選項 Mode 選 PWM mode 1 Pulse 設定 500 在 RCC的部份沒有啟用 HSC 外部 oscillator,  所以此處 Fsys是 8 MHz, 設定 PWM參數, PSC = 7, ARR = 999, Pulse = 500, Fpwm = Fsys/(Arr+1)*(Psc+1), 得 Fpwm為 1kHz. Pulse 為 500, 占空比為 500/(999+1) = 50 % Timer 1 Ch2 輸出為 PA10腳位

stm32 uart 導向至 printf

讓stm32 可以使用 printf 輸出 stm32cubeMX安裝的套件包路徑 repository/stm32cube_fw-fw_v1.8.5/projects/stm32f103rb-nucleo/example/uart/uart_printf 可以找到範例   #ifdef __GNUC__      #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else      #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ PUTCHAR_PROTOTYPE {      HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);      return ch; } 還要記得加入 syscalls.c 到 core/src/  路徑底下 修改 makefile C_SOURCES 加入 Core/Src/syscalls.c