STM32学习(6)-Systick滴答定时器、delay函数介绍、端口复用和端口重映射

参考资料(STM32F1开发指南-库函数版本 第五章delay介绍,Cortex-M3权威指南(中文) P133 )

一. Systick滴答定时器

1.1 Systick滴答定时器介绍

在这里插入图片描述
在这里插入图片描述

1.2 Systick相关的寄存器

在这里插入图片描述

1.2.1 SysTick控制和状态寄存器-CTRL

在这里插入图片描述
在这里插入图片描述

1.2.2 SysTick重装载数值寄存器-LOAD

在这里插入图片描述

1.2.3 SysTick当前值寄存器-VAL

在这里插入图片描述

1.3 Systick相关库函数

在这里插入图片描述
在这里插入图片描述

入口参数如下:

在这里插入图片描述
在这里插入图片描述
装载值如何计算:假设你想延时1ms,选择的时钟为9MHz,则系统需要运行9000个周期,才延时1s,故装载值为9000。

二.delay函数

在这里插入图片描述
fac_us指的是系统延时1us需要运行的时钟周期。这里选择外部时钟=72MHz/8=9MHz,故延时1us需要执行9个周期。
fac_ms指的是系统延时1ms需要运行的时钟周期。这里选择外部时钟=72MHz/8=9MHz,故延时1ms需要执行9000个周期。
在这里插入图片描述

三.端口复用

3.1 复用概念

普通的GPIO引脚可以复用为内置外设的功能引脚,就叫复用。如PA9,PA10引脚即可与当作普通的I/O用,也可以作为USART1的串口引脚使用。

3.2 如何查找外设对应的复用引脚

打开《STM32F103芯片数据手册》,如图所示:

在这里插入图片描述

3.3 端口复用配置过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.端口重映射

4.1 端口重映射概念

在这里插入图片描述

4.2如何查找外设对应的重映射引脚

打开《STM32F103芯片数据手册》,如图所示:
串口2的引脚是PA2、PA3,通过重映射可以映射到PD5、PD6引脚。

在这里插入图片描述在这里插入图片描述

4.3 部分重映射与完全重映射

在这里插入图片描述

4.4 端口重映射配置过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您解答关于STM32系统滴答定时器systick)应用的问题。 系统滴答定时器systick)是STM32一个非常重要的计时器,它是一个24位的递减计数器,每当计数器减为0时,会触发一个断。它通常用于操作系统的时间片轮转、延时函数的实现等。 在STM32,我们可以通过如下代码使能系统滴答定时器: ```c // 使能系统滴答定时器 SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; ``` 然后,我们可以通过如下代码设置系统滴答定时器的时钟源和计数器值: ```c // 设置系统滴答定时器的时钟源和计数器值 SysTick->CTRL &= ~SysTick_CTRL_CLKSOURCE_Msk; // 使用处理器时钟作为时钟源 SysTick->LOAD = SystemCoreClock / 1000 - 1; // 设置计数器值为1ms ``` 在这段代码,我们将系统滴答定时器的时钟源设置为处理器时钟,每次计数器减1代表1个处理器时钟周期的时间。然后我们将计数器的初值设置为`SystemCoreClock / 1000 - 1`,这里的`1000`代表我们希望系统滴答定时器每1ms断一次。 最后,我们需要在断服务函数处理系统滴答定时器断: ```c void SysTick_Handler(void) { // 处理系统滴答定时器断 } ``` 在断服务函数,我们可以编写自己的代码来处理系统滴答定时器断。例如,可以实现一个简单的延时函数: ```c void delay_ms(uint32_t ms) { uint32_t i; for (i = 0; i < ms; i++) { while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk)); // 等待计数器减为0 } } ``` 这个函数可以让程序在执行到它的时候暂停一段时间,等待系统滴答定时器断触发一定次数后再继续执行。 希望这些代码可以帮助您更好地理解STM32系统滴答定时器的应用。如果您还有其他问题,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值