[PROJEKT] STM32Cube graficzny konfigurator STM32

Kod inicjalizacji przetwornika wygenerowany przez STM32CubeMX został pokazany na listingu 1.

List. 1. Konfiguracja przetwornika ADC1 wygenerowana przez STM32Cube MX

Skonfigurowany przetwornik trzeba jeszcze zainicjalizować. Inicjalizacja będzie wymagała włączenia taktowania modułu ADC i ustawienia wyprowadzenia PC5 jako wejścia analogowego. STM32Cube MX generuje automatycznie funkcję inicjalizacyjną HAL_ADC_MspInit (Msp skrót od MCU Support Package). Ta funkcja jest umieszczana przez generator w pliku stm32f4xx_hal_msp.c, a jej wywołanie wygląda następująco: HAL_ADC_MspInit(&hadc1);

List. 2. Inicjalizacja przetwornika ADC1

Kolejną ważną konfiguracją mikrokontrolera jest ustawienie taktowania. Układ taktowania nowoczesnych mikrokontrolerów bardzo się rozbudował w porównaniu z prostymi konstrukcjami sprzed lat. Możliwość zaprogramowania w szerokim częstotliwości taktowania rdzenia i osobno częstotliwości taktowania peryferii wymusiła zastosowanie programowanych układów PLL i programowych układów przełączających. Ponadto można wybrać źródło zegara: z oscylatora kwarcowego z dołączanym zewnętrznym rezonatorem, lub z wewnętrznego precyzyjnego oscylatora RC o stałej częstotliwości. Ta elastyczność w konfigurowaniu taktowania jest okupiona większym, lub mniejszym skomplikowaniem układu i dlatego sprawia trudności nawet bardziej doświadczonym programistom, nie mówiąc już o początkujących. Żeby zadanie konfiguracji uczynić prostym jak to tylko możliwe w pakiecie STM32Cube MX umieszczono zakładkę Clock Configuration z graficznym przedstawieniem układu taktowania – rysunek 7.

Rys. 7. Zakładka Clock Configuration
Rys. 7. Zakładka Clock Configuration

Domyślnie układ jest tak skonfigurowany żeby rdzeń był taktowany z maksymalną częstotliwością taktowania równą 168 MHz. Źródłem sygnału zegarowego jest oscylator kwarcowy HSE o częstotliwości 8 MHz umieszczony na płytce STM32F4DISCOVERY. Alternatywnie do taktowanie można wybrać oscylator RC HSI o częstotliwości taktowania 16 MHz. Wyboru oscylatora dokonuje się w bloku PLL Source Mux.

O autorze