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

GPIO的只能使用库函数读写位整体操作
推完输出 高低输出同 与stm32完全相同
开漏输出 仅仅输出低电平
(由上拉电阻得到高电平信号)输出关闭的结束
GPIO八种状态
输入:浮空 上拉 下拉:取决于默认电平而已
模拟
输出:开漏,推挽上述已讲解
服用输出
:
这个模式的输出决定了之后按键的结果,
下接按键:1.不加上拉,但是弄成上拉模式
2.加一个上拉电阻,用浮空模式或者上拉即可
上接按键:1.下拉模式不加电阻
2.直接加下拉电阻:下拉或者浮空
编译配置
第三种中强制枚举(万金油指令加action)
宏定义:
1.定义之#define ABC 12345
作用有 赋值 定义一个 带入文件
则应用宏定义:int a =ABC 即可
2.typedef unsigned char unit8——t
代表把左边变成了右边,
3.struct是
1.struct定义
2.元素赋值
一.led点亮7.27
7.2
思路是库函数 不是寄存器配置法
所以利用置位法和复位函数进行就好了
输入利用一个封装函数
输出力用一个封装函数
就可以同时定义两者了
键盘分两步:先是配置出事函数
再是返回KEY值
key是默然为零
中间是case的使用选择switch
返回
或者按键检测
设置返回值
key默认等于零
在判定是否松手,再赋值keynum
再返回
2.
readinput 加bit就是某一位,否则就是所有为
输出bit用来翻转取反
3.必须定义一个全局变量
4.LED——init()啥意思?
哦是一个直接调用的函数:就是个很简单的调用加上配置
(调用函数式配置加上调用)
5.
中断系统
GPIO口经过了输出之后经过引脚的译码器分配地址,再加上一些其他的usb等模块,构成了20个输出线路

一。时钟配置,把上述的寄存器全部配置,然后这个配置看下面的总线即可
二。gpio输出步骤
1.(1)输出结构体,(2)并定义其中mode,pin,speed,(3)并且初始化其中的外设
三.AFIO
输出引脚即可(因为前面结构包含在GPIO里面)
四.EXTI
1.调用exti声明
2.结构体的声明加exti命名
(1)line:中短线
(2)lincmd:使能数值
(3)mod:中断模式还是枚举模式
(4)trigger:边沿触发
3.初始化
五.nvic
2.结构体声明
(1.)nvic线输出
(2)使能
(3)优先级
(4)优先级
1.中断分组
3.初始化结构体
六:中断函数
(1)使用固定的exti15到10的中断函数
(2)检验是否是给定线
(if ==set)即可
6.总线
所有GPIO口都是挂在APB2总线上的
然后又好多个GPIO
每个GPIO都有16个引脚接口
定时器
1.选择六个函数配置外部函数
(1)开启时钟,
(2)内部时钟来源的选择
(3)定时器选择
2.实际单元永
(1)定义结构体:结构体函数+结构命名
(2)参数包括:(1)分频
(2)向上计数模式
(3)重装计数器f1
(4)预分频器发
(5)重复计数器的数值:高级计数器之外给0
(6)
3.中断输出
(1)更新中断
(2.enable)
4。nvid 永 nvic
(1优先级分组)
(2)结构命名+结构化
(3)参数化:
(4)舒适化参数体
5.运行控制 用tim cvid函数
启动定时器(tim2,enable);
6.中断函数
先定义一个void tmier (void)
{if(==set)
{执行
删除}
、
}
7.然后在h中声明一下第一句
另外复习下中断
:1.库函数调用,不过变量用external
一个手动计数器的值需要考虑
时钟:
系统时钟
定时器时钟
给予看门狗晶振
pwm的stm32的最终形态:
通用定时器:1.左侧进行比较:输出一个比较电平
比较电平是八种输出关系:
(1)匹配运算: ref分别置数 有效,制低电平,电平翻转(相对于上一次翻转,仅对于上升沿下降沿),冻结(等于上一个状态
),强制为低电平或者高电平
(2)pwm状态
2.剂型选择
3.使能输出
4.gpio输出通道