HAL库 编码器配置
1 基本配置烧录选择串行: 选择时钟 设置时钟频率 重设系统滴答定时器中断优先级 设置文件名和选择 IDE 设置只拷贝需要的库和创建独立. c 和. h 文件 建立工程并打开后在 Debug >> Settings 中勾选 Reset and Run 2 编码器配置 选择编码器模式,并配置定时器的分频系数和周期 配置编码器模式为 TI 1 和 TI 2 模式,检测边沿为两个 rising 在主函数中开启编码器 12HAL_TIM_Encoder_Start(&htim3,TIM_CHANNEL_ALL);HAL_TIM_Encoder_Start(&htim4,TIM_CHANNEL_ALL); 编码器读取函数 1234567void readEncoder(int speed[]){ speed[0] = -(short)__HAL_TIM_GET_COUNTER(&htim4); speed[1] =...
HAL库 PWM输出配置
1 基本配置烧录选择串行: 选择时钟 设置时钟频率 重设系统滴答定时器中断优先级 设置文件名和选择 IDE 设置只拷贝需要的库和创建独立. c 和. h 文件 建立工程并打开后在 Debug >> Settings 中勾选 Reset and Run 2 PWM 配置 选择定时器时钟源并将通道模式配置为 PWM 模式 配置定时器参数,PWM mode 1 模式下,什么电平有效就将 CH Polarity 设置为什么极性 生成代码后在主函数中进行初始化 12HAL_TIM_Base_Start(&htim3);HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); 改变占空比函数 1__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, 占空比数值);
HAL库 基本定时器中断配置
1 基本配置烧录选择串行: 选择时钟 设置时钟频率 重设系统滴答定时器中断优先级 设置文件名和选择 IDE 设置只拷贝需要的库和创建独立. c 和. h 文件 建立工程并打开后在 Debug >> Settings 中勾选 Reset and Run 2 基本定时器中断 勾选内部时钟,并配置定时器分频系数和周期 在 NVIC 中打开定时器更新中断 注意: 写下面这句: 1HAL_TIM_Base_Start_IT(&htimx); 最后编写中断回调函数 1234567void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){ if(htim == &htimx) { }}
HAL库 串口接收中断配置
1 基本配置烧录选择串行: 选择时钟 设置时钟频率 重设系统滴答定时器中断优先级 设置文件名和选择 IDE 设置只拷贝需要的库和创建独立. c 和. h 文件 建立工程并打开后在 Debug >> Settings 中勾选 Reset and Run 2 串口接收中断配置 选择合适的串口开启异步通信并配置好参数 NVIC 中开启串口 1 的全局中断 主函数初始化部分对串口接收中断进行初始化 1HAL_UART_Receive_IT(&huart1, &ucRxData, 1); //启用中断服务函数 配置中断回调函数 123456789101112void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ if(huart->Instance==USART1) { HAL_UART_Receive_IT(&huart1, &ucRxData, 1); // 每使用一次中断都要重新配置一次缓冲区 } // 或者...
HAL库 串口printf配置
1 基本配置烧录选择串行: 选择时钟 设置时钟频率 重设系统滴答定时器中断优先级 设置文件名和选择 IDE 设置只拷贝需要的库和创建独立. c 和. h 文件 建立工程并打开后在 Debug >> Settings 中勾选 Reset and Run 2 串口 printf 配置 选择要用于 printf 的串口,选择异步通信模式 在下方选项卡中可以配置串口参数 创建工程后重定向 printf 重定向函数的模板: 123456789/*** @brief 重定向printf*/int fputc(int ch, FILE *f){ uint8_t temp[1] = {ch}; HAL_UART_Transmit(&huart1, temp, 1, 2); return ch;} 或者 12345int fputc(int ch, FILE *file){ HAL_UART_Transmit(&huart2, (uint8_t*)&ch, 1,...
HAL库 外部中断配置
1 基本配置烧录选择串行: 选择时钟 设置时钟频率 重设系统滴答定时器中断优先级 设置文件名和选择 IDE 设置只拷贝需要的库和创建独立. c 和. h 文件 建立工程并打开后在 Debug >> Settings 中勾选 Reset and Run 2 配置外部中断 点击引脚使能外部中断 在 NVIC 中使能外部中断并设置优先级 GPIO 配置中可以选择外部中断的中断源和初始上下拉模式 编写中断回调函数 123456// 尽量将逻辑写在回调函数里面void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0) == SET) HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);}