3.6号freeRtoS

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库函数可以对引脚进行操控

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值