首页 > 其他分享 >小白江科大stm32笔记

小白江科大stm32笔记

时间:2024-10-30 16:46:06浏览次数:8  
标签:CK 引脚 中断 PSC 白江 stm32 科大 GPIO 时钟

P5        GPIO输出

·带FT的引脚可容忍5v电压

·所有的GPIO都是在APB2外设总线上

·每个GPIO总共有16个引脚,从0到15

·32是32位单片机,寄存器有32位,但只有16个端口,所以只有低16位有端口

下图为GPIO基本结构:  

·以下面GPIO电路图为例,左三为寄存器,中间为驱动器,右边为某一个端口的的IO口的引脚。同时,整体分为两个部分,上面是输入部分,下面是输出部分

·8种工作模式(PS:详细参考手册)

        1.浮空输入

        2.上拉输入

        3.下拉输入

        4.模拟输入:一般时候用不到

        5.开漏数入:高电平时呈现高阻态,没驱动能力

        6.推挽输入

        7.复用开漏输出

        8.复用推挽输出

P6LED闪烁&LED流水灯&蜂鸣器

P13        TIM定时中断

·中断源:对于外部中断来说,可以是引脚发生了电平跳变;对于定时器来说,可以是定时的时间到了;对于串口通信来说,可以是接收到了数据。

·中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。

·中断嵌套:(中断程序再次中断,二次中断现象)当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。

·响应优先级和抢占优先级(我的理解是):当程序1运行完后,响应优先级高的即使没排队,也可以直接运行;当程序1正在运行时,可以不等程序1运行完,抢占优先级高的可以让程序1靠边,优先运行,优先值越小,优先级更高。

·AFIO

        AFIO主要完成两个任务:复用功能引脚重映射(就是最开始提到的引脚定义表,当想把默认复用功能换到重定义功能时,就是用AFIO来完成的,这也是AFIO的一大主要功能)、中断引脚选择。

·EXTIx是外部中断对应的中断资源 

       工作原理: EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序。

        触发方式:(引脚电平的变化类型)上升沿/下降沿/双边沿/软件触发(程序执行代码就能触发中断)。

        支持的GPIO口(外部中断引脚):所有GPIO口都能触发中断,但相同的Pin不能同时触发中断(比如PA0和PB0不能同时使用,智能选一个作为中断引脚;所以如果有多个中断引脚要选择不同的pin引脚,比如PA0和PA1、PB3就可以)

·NVIC就是STM32用来管理中断,分配优先级的,其中断优先级共有16个等级

P14        定时器中断&定时器外部时钟

·操作步骤:

        (1)RCC时钟中断开始

        (2)选择内部时钟源

        (3)配置时机单元

        (4)配置输出中断控制,允许中断输出到NVIC

        (5)配置NVIC,并配置优先级 

        (6)运行控制-使能计数器

        (7)定时器中断函数

·中断输出:ITConfig

·TIM2~7是APB1的外设时钟

·选择内部时钟,则默认是使用内部函数,可以不配置

计数器溢出频率:

        CK_CNT_OV = CK_CNT / (ARR + 1)

                               = CK_PSC / (PSC + 1) / (ARR + 1)

 ·PSC(Prescaler,预分频器值):它用于对输入时钟(CK_PSC)进行分频。通过设置PSC的值,可以降低输入时钟的频率,其计算公式为经过预分频后的时钟CK_CNT = CK_PSC / (PSC + 1)。例如,如果输入时钟CK_PSC是100MHz,设置PSC为9,那么CK_CNT的频率就是100MHz / (9 + 1)=10MHz。
·ARR(Auto - Reload Register,自动重装载寄存器值):决定了计数器的计数上限。当计数器的值达到ARR所设定的值后,计数器会重新从0开始计数,并产生相应的溢出事件,这用于确定计数器的周期,从而影响溢出频率。例如,在定时器应用中,如果ARR设置为999,计数器从0开始计数,计到999后就会溢出重置。

·CK_CNT:这是经过预分频后的时钟信号用于驱动计数器计数的时钟频率。计数器在这个时钟的驱动下进行计数操作,每来一个 CK_CNT 时钟脉冲,计数器的值就会加1。
·CK_CNT_OV:这是计数器的溢出频率。当计数器计数到自动重装载值(由 ARR 决定)时就会产生溢出, CK_CNT_OV 表示这种溢出情况发生的频率,即单位时间内计数器溢出的次数。

P18        输入捕获模式测频率&PWMI模式测频率占空比                                                                 

· PWM频率=更新频率=72M/(PSC+1)/(ARR+1),占空比=CCR/(ARR+1),所以通过ARR调节频率,会影响占空比,而通过PSC调节频率不影响

·TIM_PrescalerConfig:单独写入PSC的函数  

·IC捕获的初始化:

        (1)RCC开启时钟,把GPIO和TIM的时钟打开

        (2)GPIO初始化,把GPIO配置成输入模式(上拉或浮空)

        (3)配置时机单元,让CNT计数器在内部时钟的驱动下自增运行

        (4)配置输入捕获单元

        (5)选择从模式的触发源

        (6)选择触发之后的操作

·TIM_SelectInputTrigger:选择输入触发源TRGI(对应上图第二个模块)

·TIM_SelectOutputTrigger:选择输出触发源TRGO(主模式的触发源)

·TIM_SelectSlaveMode:选择从模式

标签:CK,引脚,中断,PSC,白江,stm32,科大,GPIO,时钟
From: https://blog.csdn.net/2401_86555720/article/details/143336394

相关文章

  • 基于STM32单片机的交通灯控制系统
    一、实现功能本设计主要是介绍了单片机控制下的交通灯控制系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:    东西、南北两干道交于十字路口,各干道有一组红、绿、黄三个指示灯,指挥车辆和行人安全通行。南北方向为主干道,通行时间为9......
  • STM32+致远电子Dport模块的Ethercat从站开发
    环境准备硬件环境1.Dport-stm32评估板2.stlink3.千兆网线4.安装有twincat3的上位机电脑(带千兆网口) 软件环境1.TC31-FULL-Setup.3.1.4024.53.exe2.mdk5开发环境3.SSCTool.exe4.stm32cubemx 例程资料1.致远电子官网 开发流程1.底层硬件EPC103-DP系统框图,......
  • 江科大HAL库版本之 3-1LED闪烁
    鉴于自己也在学习嵌入式,为了加强自己对知识的巩固,决定尝试一下把江科大黄学长的实验工程代码HAL库化,也希望能帮助到一些人。顺便借用了B站一位同学的笔记,希望能够理解吧!......
  • 基于HAL库STM32F1虚拟串口(USB)通信、大端模式、结构体对齐
    虚拟串口收发函数、大端模式和小端模式、结构体对齐文章目录虚拟串口收发函数、大端模式和小端模式、结构体对齐前言一、发送函数二、接收函数三、大端模式与小端模式三、结构体对齐前言本文主要是在上一篇中的工程,使用虚拟串口遇到的一些问题:在发送数据直接找到......
  • 【STM32】STM32系统时钟RCC
    我们每次在新建工程中对外设模块进行初始化的第一步就是RCC开启时钟我刚开始学的时候对这个没什么概念,就只知道初始化之前要开启时钟,就要用RCC相关的函数,得过且过照着别人的代码敲,但是程序多写几个就会疑惑时钟到底是什么,为什么必须要开启……带着这些疑问我查阅了一些资料......
  • 基于stm32的rfid智能农场物联网单片机软硬件设计毕业生系统
    (1)硬件端STM32F103C8T6:用于所有程序的中控和模块数据通信;0.96寸OLDE:用于显示当前设备状态以及实时温度;蜂鸣器:用于设备状态的提示和报警;RFID读卡器:使用读卡器功能进行卡号读取,并作为唯一标识体温传感器:检测到体温并且读卡器读取的卡号为牛的唯一标识,则将数据打包上传到app进行保......
  • 基于stm32的水质监测检测物联网单片机软硬件设计毕业生系统
    (1)硬件端STM32F103C8T6:用于所有程序的中控和模块数据通信;0.96寸OLDE:用于显示当前当前ph值、当前tds值,最上方显示游泳池水质检测;蜂鸣器与LED:用于设备报警和状态提示;Wife模块:用于设备联网,实现远程APP查看;超声波模块:使用超声波测距,实时回传测定的水位线;按键模块:用于调整限值数据,......
  • 基于stm32的智能语音药箱药盒物联网单片机软硬件设计毕业生系统
    (1)硬件端STM32F103C8T6:用于所有程序的中控和模块数据通信;0.96寸OLED:用于显示的各种环境数据,实现实时监测;GA10:使用4G模块,用与设备联网处理,实现连接云平台和使用MQTT协议远程传输数据,药品不足需提醒;MAX30102心率模块:用于监测患者的心率和血氧数据;LU90614红外测温:用于监测患者的......
  • 基于STM32的智能停车场管理系统设计
    引言随着城市汽车数量的增加,停车场的管理变得愈加复杂。传统的停车管理方式效率低下,而智能停车场管理系统可以提高停车效率,减少人工管理成本,提升用户体验。本文基于STM32微控制器设计了一个智能停车场管理系统,集成了车位检测、车牌识别、自动闸门控制和实时数据监控等功能,实现......
  • 【STM32+HAL库】使用通用定时器生成的PWM实现呼吸灯效果
    板子:STM32F103C8仿真软件:Proteus8软件平台:cubemx+keil1新建STM32CubeMX工程1.1配置系统时钟RCC  1.2配置定时器这里用的PB3和PA15一对在TIM2中,时钟源选择内部时钟InternalClock,通道1选择PWM输出PWMGenerationCH1通道2选择PWM输出PWMGenerationCH2 ......