1.GPIO
GPIO(General Purpose Input/Output,通用输入/输出)是非常重要的外设,用于与外界数字通信。允许微控制器与外部器件(如传感器、执行器、LED等)进行数据交换,以实现各种功能。
1.1 配置GPIO为输出模式
左击相应引脚,设置模式
把GPIO默认的输出电平改成高电平
1.2 STM32的库函数
HAL:STM32的库函数,在这个库里面会包含各种操作函数,使用这里面的函数就可以去操作STM32。
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
函数功能:对STM32的GPIO进行写操作
GPIO_TypeDef* GPIOx:代表第几组GPIO,GPIOB(代表的是第B组GPIO)
uint16_t GPIO_Pin:代表的是第几个引脚(在一组GPIO中会有多个引脚)、GPIO_PIN_0(代表第一个引脚)
GPIO_PinState PinState:引脚的电平状态
void HAL_Delay(uint32_t Delay)
功能:延时
参数:延时的时间,单位是ms
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
函数功能:翻转GPIO电平状态
GPIO_TypeDef* GPIOx:代表第几组GPIO,GPIOB(代表的是第B组GPIO)
uint16_t GPIO_Pin:代表的是第几个引脚(在一组GPIO中会有多个引脚)、GPIO_PIN_0(代表第一个引脚)
2.定时器
在STM32微控制器中,定时器是一个重要的硬件模块,用于产生一系列时间基准,生成定时中断,或者执行其他与时间相关的任务。定时器通常用于实现精确的时间测量、产生脉冲、PWM(脉冲宽度调制)信号,以及执行周期性任务等。
2.1配置定时器
定时时间(s) = (预分频系数 + 1) * (重装载值 + 1) / 系统主频(48MHZ)
设置定时器的定时时间
打开中断
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
TIM_HandleTypeDef *htim:指定要打开哪个定时器(STM32里面有很多个定时器)
HAL_StatusTypeDef:代表定时器是否打开成功
定时器中断回调函数:
//定时器中断回调函数,当时间到了后就会被调用 //100ms调用一次
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
//判断是否是定时器3
if(htim == &htim3)
{
}
}
无论是哪个定时器的时间到了都是调用同一个回调函数
3.串口通信
串口通信主要用于单片机和电脑或者是单片机之间的通信。
串口通信与并行通信区别:
1.并行通信的速率比串行通信的速率快
2.并行通信的成本比串行通信高
3.并行通信受到干扰的时候影响比较大,传输的比较短
串口的工作模式:
单工:只能发送数据或者接收数据
半双工:在同一时刻只能发送数据或者是接收数据
全双工:在同一时刻既能发送数据也能接收数据
波特率
波特率就是代表每秒可以传输的数据位数(bit/s),波特率越大串口传输的速率越快。
常见的波特率有9600,115200。
作业
1.
代码编写的区域要在代码需要写在CODE BEGIN和CODE END中间,代码写完时要编译,每次都要配置st-link立即运行代码和pack的enable
2.
要选择芯片型号和封装格式然后配置SYS设置Debug开启仿真,配置RCC设置时钟为48mHz,工程名字和路径都有不能有中文,选择编译器MDK
3.
先在stm32cubemx上io引脚选择工作模式,然后设置默认高电平,在keil中使用HAL库函数可以对引脚进行操控