stm32F103 入门篇【阶段一、二】

CRL:低寄存器,有32位,4位配置一个引脚,低寄存器配置低八位
CRH:高寄存器,有32位,4位配置一个引脚,高寄存器配置高八位
点亮一个led灯
基地址内容
GPIO C的结构体内容
时钟的结构体内容
实验程序
BSRR寄存器(注意两张图不同的字):
BRR寄存器:
为了消除引脚不一致性,一般用BSRR的低16位输出高电平,用BRR的低16位(高16位无效)输出低电平
P14,第九讲:
P16第九讲
P17:
GPIO_Init函数架构:
配置PA2为推挽输出,输出速度50MHZ步骤
P18:配置PA2为上拉输入步骤
P19:
P20:
P21:
P22:库函数配置:
P25:入门篇,阶段二
P26:库函数模板刨析
brief:简要介绍、说明
param:参数
assert_param:断言函数
P27:如何寻找函数的各个参数:
如果函数的参数要填写的是结构体指针类型:(填写的参数名和断言函数参数名不一致)
1. 根据结构体变量(GPIO_InitTypeDef)定义一个变量(GPIO_InitStruct)
2. 引用(GPIO_InitStruct)成员变量并赋值
3. 把变量(GPIO_InitStruct)以地址形式写入GPIO_Init这个函数里
注:采用这种方式是因为注释里面没有明确定义函数参数如何填写(比如前半部分参数GPIO_InitTypeDef*GPIOx就在注释(或者断言函数)里明确告诉了填什么参数)
下面这个图解释为什么第一个参数填写GPIOC就可以了:
P28:
P29:
最基本的编写:点亮LED
P30:
点亮LED(采用模块化编写,方便移植)
P31:时钟简介
时钟系统框图如下:
中文手册P28:
P32:时钟简介(2)
P33:keil软件仿真调试
方法一:查看引脚高低电平
方法二:用模拟示波器查看高低电平和间隔时间:(不支持硬件仿真)
P35:SYSTICK滴答定时器
P36:
P37:中断简介:
P38:中断简介
参考手册(P132):
抢占和响应优先级的讲解:
具体举例情况一:
具体举例情况二:
具体举例情况三:
具体举例情况四:
看懂这道例题就搞懂了:
P39:中断简介
注意:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
如果工程里面有中断,首先要进行分组,然后将具体的中断设置到组里面(比如:URT4/URT5/TIME3等具体的中断)
P40:讲解TIM3_Init的使用(参数的填写,回忆GPIO_Init)
P41:讲的Keil软件仿真调试的一些排错过程
P42:非阻塞延时程序(闪烁LED灯)
P44:SYSTICK定时器的理论分析
重装载计数器最大数值:2的24次方
P45 :SYSTICK定时器的功能实现
P46:SYSTICK滴答定时器的理论分析
自己写的程序和标准的进行对比
条件一:判断定时器第0位是否为1(定时器第0位为1代表定时器开启)
P47:SYSTICK滴答定时器的理论分析
P48:位带操作
P49:位带操作理论分析
点亮led灯:寄存器操作,库函数操作,位带操作
P50:位带操作理论分析
0X4000 0000-0X4010 0000之间的每一位可以膨胀成32位
P51:位带操作理论分析
公式在权威指南88页:
下面这张图的函数会用就行,不用自己写:
P52:按键控制
四大步骤:
1.按键检测到低电平
2.延时X毫秒
3.再次检测是否为低电平
4.若为低电平则执行相应动作
KEY1配置成上拉输入模式:
P53:按键控制(高内聚低耦合)
先讲解一下extern的用法:
P54:按键控制:
注:以后每增加一个头文件,就把相应的头文件放到sys.h这里面,在其余文件里只需调用sys.h头文件即可
P55:按键控制
主要讲如何软件仿真按键程序
P56:按键控制