欢迎光临散文网 会员登陆 & 注册

STM32入门教程-2023持续更新中

2023-07-28 11:15 作者:bili_95894200645  | 我要投稿

FT的可容忍5v,不带FT只能3.3v

内部寄存器为32位,端口只有低16位对应的有



保护二极管的作用:VDD接3.3V当输入电压大于3.3v时上方二极管导通 ,VSS接0v 输入电压小于0v时下方二极管导通,对内电路起保护作用

上拉电阻/下拉电阻, 上拉输入/下拉输入 当引脚悬空时保证引脚高/低电平,引脚浮空状态极其容易受到外界干扰,

施密特触发器;高于上限输出高电平,低于下限输出低电平

模拟输入接ADC,复用功能接数字信号

推挽模式;P与N均有效 输出寄存器为0,lo输出低电平,输出寄存器为1时,lo输出高电平,在此模式下,32对lo口有绝对的控制权

开漏;Pmos无效,数据寄存器为1时下管断开,高阻模式 数据寄存器为0时下管导通,输出接到VSS 输出低电平 此模式只有低电平有驱动能力

使用模拟输入将引脚配置成ADC

一个端口可以有多个输入,只能有一个输出

输入模式下输出断开,输出模式下输入接通


读取输出函数的值实现电平的反转,也就是按键按下点亮,按键再次按下熄灭


NVIC为CPU的助手 根据优先级别向cpu输入



事件响应不会触发中断,而是触发别的外设

AFIO相当于数据选择器,前面3个GPIO外设的16个引脚里选择一个连接到EXTI通道

9-5 15-10在一个通道


AFIO函数在GPIO

主函数查看和清除标志位

中断函数查看和清除标志位

结构体引出成员

CTRL alt 空格

ANVIC的通道配置根据所需的容量大小选择

利用中断函数的注意事项:

在中断函数里不要执行耗时间过长的代码,导致主程序阻塞

不要在中断函数和主函数操作同一个硬件和调用同一个函数


32主频一般是72kHZ

如果记72000个数,频率为1KHZ ,1ms的时间

自动重装为技术目标值

中断频率等于 72M/65536/65536

时间取倒数最大定时时间

预分频器的值=实际分频-1

ui为中断通往NVIC

u为更新事件

主模式触发DAC :若利用中断来调用函数启动DAC,由于中断的频繁会影响主程序的运行和其他中断的响应

主模式更新时间会映射到触发输出TRGO ,trgo直接接在DAC的转换引脚上 实现硬件自动化





中断标志位需要手动清0


手动更新中断事件使预分频器的值有效,由于更新时间和更新中断同时发生,更新中断会至中断标志位, 造成初始化完成就立刻进入中断

手动把更新中断标志位清除防止上电就进入中断

中断标志执行完成要至清除中断







pwM频率=计数器更新频率


以CCR为变量,改变占空比的时间

舵机要求20ms 50HZ 高电平的时间0.5ms——2.5ms crr500_2500

RCC到角度的映射

结构体成员配置不完整会发生错误,要配置完整 ,或者给结构体赋初始值,然后配置 需要的结构体成员


AFIO引脚的定义和重映射





五个引脚具有调试功能,使用复用引脚需要先

PA15 PB3 PB4三个引脚当作GPIO来使用加上第一句和第三句 先打开AFIO,在用 AFIO将JTAG解除

重映射定时器或其他外设引脚 第一二句,先打开AFIO时钟,再用AFIO重映射的复用引脚

重映射是调试端口三句

点击放大镜进入调试模式

左上角依次是

复位 全速运行 停止全速运行 单步运行 跳到当前行单步运行 跳出当前行数单步运行 体哦啊到光标指定行单步运行 运行到指定行

灰色区域设置断点

N>fm测周法

N<fm测周法

交叉连接的作用

通过数据选择器方便切换输入引脚

一个引脚的输入映射到两个捕获单元,俩个通道对一个信号捕获可以测量频率和占空比

工作流程

分频过后的信号就可以触发捕获电路进行工作了,每来一个值,CNT的值就会向CCR转运一次,转运的同时会触发捕获事件,这个事件会让状态寄存器置标志位,同时产生中断


滤波器工作 原理 :以采用频率对输入进行采样,当连续N个值都为高电平时,输出才为高电平,相反为低电平

前者控制其他外设,后者被别的信号控制 实现硬件自动化

CNT的值转入CCR里为输入捕获自动执行

CNT=0清0计数器为从模式自动执行

读取信号频率时 读取CCR1得到N,fc标准频率/N

CNT最大记65535

从模式清0只有通道1,2,通道3,4只能开启捕获中断,手动清0

ccr1为一整个周期的计数值,CCR2为高电平期间的计数值 CCR2/CCR1为占空比

此函数可以配置PWMI配置与通道一相反 只支持通道1,2





毛刺位置输出高低电平抵消毛刺现象

TI1的时序是未反向的

当编码器加减方向相反时,将其反向,或者AB引脚交换

编码器的输入连接定时器通道1和定时器通道2

将16位无符号数转化位16位有符号数得到负数

通过给结构体赋初始值,防止初始值未配置完整而造成错误



逐次逼近采用2分法找到电压

每次的二分刚好是位权 这个过程相当于从高位到地位找到电压的编码

若使用16通道 联合DMA来实现

规则通道寄存器只能放一个通道的数据

注入组可以放四个通道


触发ADC转换有硬件软件两种

软件触发:调用代码

硬件触发:定时申请中断,在中断里手动开始一次转化

预分频器只能选择6 和8

EOC规则组的转换完成信号

JEOC注入组完成的信号



转换完成给EOC标志位置于1 只有在序列1才能转换

不用关注什么时候结束,开始,直接可在寄存器里取值







AIN模式是ADC专用模式,断开GPIO口的输入输出对模拟电压造成干扰

芯片的所有寄存器被分配到一个线性空间,读写寄存器控制硬件电路,至少需要写入两个字节,指定寄存器的地址,地址下存储器存的内容,写入内容是控制电路,读出内容是获取电路状态

1.半双工传输

2.应答机制

3.一根线可接多个模块 各个模块之间不能相互干扰

4.同步协议,加条时钟线知道对方读写 当单片机进入中断时,传输停止,接收方也停止不会对传输造成影响


主机一直控制SCL总线,空闲状态下主机可主动对SDA发出控制

只有在从机发送数据和接收应答时候,才会把SDA的控制权给从机

添加上拉电阻作用

完全杜绝电源短路现象,保证电路的安全

避免引脚模式的频繁切换,开漏加弱上拉同时具备输入和输出的功能,输出,拉杆子或者放手,操作杆子的变化,输入,放手,观察杆子高低就行了


主机放数据,高电平从机读数据

释放SDA相当于输入模式

低电平从机放数据,高电平主机读取数据

调用发送字节之后紧跟发送应答,判断从机有咩有收到刚才给他的数据

接收一个字节后,发送应答位目的告诉从机,是不是还要继续发


上电默认指针指向地址0,每写入和读出字节,指针会自动自增一次






9位的最后一位是奇偶校验位

波特率的单位是码元/s 双方的通信速率bond

比特率 每秒传输的比特数 BIT/s bps

在二进制的调制下,一个码元就是一个BIT,此时两者相同






发送和接好同时利用两个寄存器缓存,提高效率

在程序上表现为1个寄存器DR,实际分为两个寄存器TDR只写 RDR只读

当发送数据寄存器写入数据时,检查当前移位寄存器是不是有数据进行移动位,如果没有,数据寄存器里的数据移动到发送移位寄存器,准备发送,当数据寄存器的值转移到移位寄存器是会置标志位,TXE发送寄存器空 置于1就可以写入下一个数据,然后由发送器控制数据移位把数据放到TX(——》向右移动),发送寄存器传输数据会先等待发生移位寄存器发送完成,把下一数据放入TDR

接收数据寄存器非空RXNE,为1时就可以把数据读走

硬件数据流控

nRTS请求发送,输出脚 判断当前能不能接收

nCTS清除发送,输入脚 接收信号 n代表低电平有效





/16因为内部还有16倍的采用时钟






打印中文

1法keil和串口助手都选择UTF8 KEi加上

2 GB开头的编码格式




数据包 :把同一批的数据进行打包和分割,方便接收方进行识别






STM32入门教程-2023持续更新中的评论 (共 条)

分享到微博请遵守国家法律