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


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开头的编码格式



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





