この記事はstm32 Advent Calendar 2017の10日目の投稿です.
自分が普段よく使うHALの関数について、使い方を忘れてもここを見ればわかるよう備忘録がわりに記していきます。
GPIO
関数 |
HAL_GPIO_WritePin (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) |
ヘッダ |
stm32f4xx_hal_gpio.h |
型名 |
void |
機能 |
Pinstate(High: GPIO_PIN_SET, Low: GPIO_PIN_RESET)を操作する |
例 |
HAL_GPIO_WritePin (GPIOA, GPIO_PIN_1, GPIO_PIN_SET) |
関数 |
HAL_GPIO_TogglePin (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
ヘッダ |
stm32f4xx_hal_gpio.h |
型名 |
void |
機能 |
Pinstateを反転させる |
例 |
HAL_GPIO_TogglePin (GPIOA, GPIO_PIN_1) |
関数 |
HAL_GPIO_ReadPin (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
ヘッダ |
stm32f4xx_hal_gpio.h |
型名 |
GPIO_PinState |
機能 |
指定したピン(インプットモード)の状態を読み取る |
例 |
HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_1) |
Timer
ベース
関数 |
HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定した構造体でタイマを設定する |
例 |
HAL_TIM_Base_Init(&htim1, TIM_CHANNEL_1) |
関数 |
HAL_TIM_Base_Start (TIM_HandleTypeDef *htim) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定したタイマを有効にする(割り込みは有効にならない?) |
例 |
HAL_TIM_Base_Start(&htim1) |
関数 |
HAL_TIM_Base_Stop (TIM_HandleTypeDef *htim) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定したタイマをストップさせる |
例 |
HAL_TIM_Base_Stop(&htim1) |
関数 |
HAL_TIM_Base_Start_IT (TIM_HandleTypeDef *htim) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
割り込みを有効にしてから指定したタイマを有効にする |
例 |
HAL_TIM_Base_Start_IT(&htim1) |
関数 |
HAL_TIM_Base_Stop_IT (TIM_HandleTypeDef *htim) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
割り込みを無効にしてから指定したタイマをストップさせる |
例 |
HAL_TIM_Base_Stop_IT(&htim1) |
PWM
関数 |
HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef* sConfig, uint32_t Channel) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定したタイマ・チャンネルでPWMを設定する |
例 |
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) (sConfigOCはPWM設定のための構造体) |
関数 |
HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定したパルスとデューティでPWM波を出力する |
例 |
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1) |
関数 |
HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
出力されているPWM波を止める |
例 |
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_1) |
ADC
関数 |
HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定したADCを設定する |
例 |
HAL_ADC_ConfigChannel(&hadc1, &sConfig) (sConfigOCはADC設定のための構造体) |
関数 |
HAL_ADC_Start(ADC_HandleTypeDef* hadc) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
ADCをスタートさせる(割り込みは有効化されない) |
例 |
HAL_ADC_Start(&hadc1) |
関数 |
HAL_ADC_Stop(ADC_HandleTypeDef* hadc) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
ADCをストップさせる |
例 |
HAL_ADC_Stop(&hadc1) |
関数 |
HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
ADCをスタートさせ割り込みを有効化する |
例 |
HAL_ADC_Start_IT(&hadc1) |
関数 |
HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
ADCをストップさせ割り込みを無効化する |
例 |
HAL_ADC_Stop_IT(&hadc1) |
関数 |
HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
ADCをDMAモードでスタートさせる |
例 |
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)sensor_value, SENSOR_NUM) (sensor_valueは格納用の配列、SENSOR_NUMは行うADCの数) |
関数 |
HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc) |
ヘッダ |
stm32f4xx_hal_adc.h |
型名 |
HAL_StatusTypeDef |
機能 |
DMAモードで動いているADCをストップさせる |
例 |
HAL_ADC_Start_DMA(&hadc1) |
Encoder Interface
エンコーダの値を知りたければTIMx->CNT
にアクセスする
関数 |
HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel) |
ヘッダ |
stm32f4xx_hal_tim.h |
型名 |
HAL_StatusTypeDef |
機能 |
エンコーダインフェース有効化し読み取りをスタートさせる |
例 |
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL) (2相エンコーダの場合両方読み取る) |
SPI
関数 |
HAL_SPI_Init(SPI_HandleTypeDef *hspi) |
ヘッダ |
stm32f4xx_hal_spi.h |
型名 |
HAL_StatusTypeDef |
機能 |
指定した構造体でSPIを設定する |
例 |
HAL_SPI_Init(&hspi1) |
関数 |
HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout) |
ヘッダ |
stm32f4xx_hal_spi.h |
型名 |
HAL_StatusTypeDef |
機能 |
Sizeで送信するデータ数を決め、pTxDataをスレーブに送り、帰ってきたデータをpRxDataに格納する |
例 |
HAL_SPI_TransmitReceive(&hspi1, send_data, rcv_data, size, 100) |
UART
関数 |
HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) |
ヘッダ |
stm32f4xx_hal_uart.h |
型名 |
HAL_StatusTypeDef |
機能 |
Sizeで送信するデータ数を決め、pTxDataをスレーブに送る |
例 |
HAL_UART_Transmit(&huart1, &char, 1, 1) |