stm32入门自学笔记

一、二极管:

二极管是一种由半导体材料制成的一种具有单向导电性能的电子元器件。

在这里插入图片描述

在这里插入图片描述

 二极管就是由一个由 P 型半导体和 N 型半导体形成的 PN 结加上相应的电极引线及管壳封装而成的

NPN和PNP型三极管的作用:

1.  NPN三极管:

基极加高电压,集电极与发射极短路,即三极管导通;

基极加低电压,集电极与发射极开路,即三极管截止。

2.  PNP三极管:

基极高电压,集电极与发射极开路,即三极管截止;

基极加低电位,集电极与发射极短路,即三极管导通。

二、输出模式:

1.推挽输出模式:stm32有绝对的控制权,高低电平都由是stm32决定。

2.开漏模式:p-mos是无效的,只有低电平有驱动能力,高电平没有驱动能力

 

 GPIO_Mode_AIN = 0x0,//模拟输入
  GPIO_Mode_IN_FLOATING = 0x04,//浮空输入
  GPIO_Mode_IPD = 0x28,//下拉输入
  GPIO_Mode_IPU = 0x48,//上拉输入
  GPIO_Mode_Out_OD = 0x14,//开漏输出
  GPIO_Mode_Out_PP = 0x10,//推挽输出
  GPIO_Mode_AF_OD = 0x1C,//复用开漏
  GPIO_Mode_AF_PP = 0x18//复用推挽

三、MOS管:

 MOS,是MOSFET的缩写。MOSFET 金属-氧化物半导体场效应晶体管,简称金氧半场效晶体管(Metal-Oxide-Semiconductor Field-Effect Transistor, MOSFET)。
  一般是金属(metal)—氧化物(oxide)—半导体(semiconductor)场效应晶体管,或者称是金属—绝缘体(insulator)—半导体。

它是利用控制输入回路的电场效应来控制输出回路电流的一种半导体器件。由于它仅靠半导体中的多数载流子导电,又称单极型晶体管。

四、中断:

EXTI 可以监测指定 GPIO 口的电平信号,当其指定的 GPIO 口产生电平变化时, EXTI 将立即向 NVIC 发出中断申请,经过 NVIC 裁决后即可中断 CPU 主程序,使 CPU 执行 EXTI 对应的中断程序(如PA0和PB0不能同时使用)
支持的触发方式:上升沿 / 下降沿 / 双边沿 / 软件触发
支持的 GPIO 口:所有 GPIO 口,但相同的 Pin不能同时触发中断
触发响应方式:中断响应 / 事件响应

 

STM32的中段不存在先来后到的排队方式,在任何时候都是优先级高的先响应

NVIC就是STM32中用来管理中断、分配优先级的

WWDG 窗口看门狗:程序卡死了,没有及时喂狗,窗口看门狗就会申请中断,使程序跳到窗口看门狗的中断程序 

AFIO是用来中断引脚选择的

:或门:与门:非门(输入1就输出0,0则相反)

 EXTI和NVIC的时钟是一直打开的不需要再打开,RCC和AFIO需要打开

EXTI的GPIO配置是浮空或上拉输入或带下拉输入

 个人经验:在很长一段时间里我都不理解是怎么从主函数跳转到中断函数的,看了江科大的视频才知道是由EXTI_InitStructure.EXTI_Trigger这个决定的看是什么触发中断然后跳进中断里

五、定时器:

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断

stm32中的定时器分为3种:“基本定时器”(TIM6,TIM7)、“通用定时器”(TIM2、 TIM3、 TIM4和TIM5)、“高级定时器”(TIM1,TIM2)

高级定时器用的是APB2总线,通用和基本定时器都是用APB1总线。注意不要开错了 

常用的是通用定时器

配置时钟部分: 

void TIM_InternalClockConfig(TIM_TypeDef* TIMx);//选择内部时钟
void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);
//选择ITRx其他定时器的时钟

void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,  uint16_t TIM_ICPolarity, uint16_t ICFilter);//选择TIx捕获通道的时钟(参数:1.定时器选择、2.引脚选择、3.极性选择、4.滤波器)
void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter);//选择外部时钟模式1输入的时钟

void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter);//选择外部时钟模式2输入的时钟

时基单元:用void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);

中断输出控制:TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);

运行控制:void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);

CK_PSC是72M频率

预分频器的值(PSC)ARR自动重装器的值 CCR的值占空比(要和ARR配合使用)

 个人感受:在学习江科大的视频里6-2的部分,里面讲的

我疑惑了很久,通过自己一遍遍试和研究才能得出结论,所以还是要亲自实践一下

 PWM:

占空比:Ton/Ts;

分辨率:占空比变化的步距(如分辨率为0.1那就是1.1可以变到1.2如果是1那就只能变到2.1越小越好不过要考虑硬件)

 ref:参考信号

输出模式是通过来选择的

输出模式控制器里面的执行逻辑:

 PWM的基本结构:(以PWM模式1为例)

 

对于普通的开漏/推挽输出引脚的控制权是来自输出数据寄存器的,如果想让定时器来控制引脚那就要使用复用开漏/推挽输出的模式,使用要使用PWM要把GPIO设置成GPIO_Mode_AF_PP模式

六、输入捕获(IC):

输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数

每个高级定时器和通用定时器都拥有4个输入捕获通道

可配置为PWMI模式,同时测量频率和占空比

可配合主从触发模式,实现硬件全自动测量

频率的定义就是一秒内重复出现了多少个周期那就是多少HZ

 

 

七、模拟/数字转换(ADC)

注意: 温度传感器和VREFINT只能出现在主ADC1中。
STM32是12位的,所以最大值是2的12次方-1也就是4095

ADC测电压是思路就是AD的范围是0-4095电压是0-3.3V(0对应0|3.3对应4095)中间只要乘除一个数就行

模拟看门狗可以监测指定的某些通道,当AD值高于它设定的上阈值或低于下阈值,自动跳入中断,可以在中断中执行程序。

GPIO口要选择 GPIO_Mode_AIN这个模式因为这个模式下GPIO口是无效的防止GPIO输出的电压对模拟电压进行干扰,所以是ADC的专属模式  

关于ADC预分频器只能选择6或者8分频,因为ADCCLK最大支持14MHz2,4分频都会超出范围

  转换模式:

1、单次转换,非扫描模式:只有序列1有效

2、连续转换,非扫描模式:只有序列1有效,转换结束后不会结束,而是立马开始下一轮转换,然后一直持续下去(不需要手动转换,也不用判断是否结束,直接读取数据寄存器)

3、单次转换,扫描模式:菜单可以一次转换多个AD转换

4、连续转换,扫描模式:菜单可以一次转换多个AD转换,转换结束后不会结束,而是立马开始下一轮转换,然后一直持续下去(不需要手动转换,也不用判断是否结束,直接读取数据寄存器)

八、DMA

 Flash是主闪存(是只读的),SRAM是运行内存

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《STM32自学笔记第3版》是一本关于STM32微控制器的自学教程。该书深入介绍了STM32微控制器的原理、应用和编程方法。 本书第3版增加了最新的STM32系列微控制器的内容,包括了更多实际应用的案例和项目。读者通过该书可以学习到如何使用STM32微控制器进行各种应用开发,如控制系统、嵌入式系统、通讯系统等。 本书首先对STM32微控制器的硬件结构进行了详细的介绍,包括了芯片的内部结构、引脚的功能和特性。然后,通过具体的实验项目,教授了STM32的基本编程方法和技巧。读者可以通过这些实验,了解STM32的各种功能模块的使用方法,如ADC、USART、SPI等。同时,还介绍了如何使用STM32CubeMX和Keil MDK等常用的开发工具进行项目开发。 此外,本书还对STM32的外设扩展进行了介绍,如通过I2C总线连接外部设备,通过CAN总线实现通讯等。读者可以学习到如何通过外设扩展,实现更复杂的应用系统。 总的来说,《STM32自学笔记第3版》是一本系统、全面的STM32自学教程。通过学习该书,读者可以深入了解STM32微控制器,并掌握其在各种应用领域的开发方法。无论是初学者还是有一定STM32开发经验的人都可以从中获益。 ### 回答2: 《STM32自学笔记 第3版》是一本适合自学STM32开发板的参考书籍。本书以STM32微控制器为基础,详细介绍了STM32的硬件结构和软件开发环境。作者结合自身经验和实际案例,将复杂的知识点以简洁明了的方式呈现,使读者能够快速入门。 第3版的内容相比前两版有所扩充和更新。首先,在硬件方面,本书详细介绍了STM32的引脚布局和外设接口,包括GPIO、USART、I2C、SPI等,使读者能够充分了解STM32的基本硬件结构和功能。 其次,在软件方面,本书提供了详细的开发环境配置和编程指南。包括了Keil MDK开发环境的安装和使用、编译、调试和下载等操作步骤,并且给出了一些常见问题的解决方法。同时,作者还介绍了如何使用STM32的标准外设库进行编程,包括GPIO控制、中断处理、定时器、串口通信等。 除此之外,本书还介绍了一些实际应用案例,以帮助读者更好地理解和应用所学知识。例如,如何使用STM32控制LED灯、驱动液晶显示屏、读取温度传感器数据等。 总体而言,本书是一本系统全面的STM32自学教程。通过学习本书,读者可以了解STM32的基本原理和应用,掌握STM32的硬件配置和软件开发,从而能够独立完成STM32的项目开发。无论是初学者还是有一定基础的开发者都可以从本书中获得很大的收益。 ### 回答3: 《STM32自学笔记第3版》是一本专门介绍如何自学STM32开发的书籍。本书主要针对初学者,通过详细的讲解和实践项目的演示,帮助读者快速上手STM32开发。 书中首先介绍了STM32系列微控制器的基本知识,包括硬件架构、外设功能和寄存器的使用等。对于没有接触过STM32的读者来说,这一部分对于理解后面的内容非常重要。 接着,书中从简单的LED控制开始,逐步引导读者学习各种外设的使用,如GPIO、定时器、UART等。同时,每个外设的使用都配有具体的实例代码和详细的注解,方便读者理解和实践。 书中还介绍了STM32开发中常用的开发工具和环境配置方法。从芯片选择、开发板选购到软件安装和项目配置,都有详细的指导。同时,书中还提供了一些调试技巧和常见问题的解答,帮助读者避开一些容易遇到的坑。 最后,书中还介绍了一些常用的外设应用案例,如按键控制、LCD显示、温湿度传感器等。通过这些案例,读者可以更好地理解STM32的应用场景和开发思路,提升自己的技能水平。 总的来说,《STM32自学笔记第3版》是一本适合学习STM32开发的入门书籍。通过系统完整的内容和实例演示,读者可以快速掌握STM32的基本知识和开发技巧。无论是初学者还是有一定经验的开发者,都可以从中获得实际的帮助和启示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值