外部中断
步骤 1.初始化来源的GPIO
2.初始化EXTI
3.配置NVIC
4.编写中断服务
2.配置NVIC
3.配置EXTI
4.中断服务函数
滴答定时器
- 所含寄存器
CTRL状态寄存器 LOAD重装数值寄存器 VAL当前数值寄存器 CALIB校准数值寄存器(不用配置)
状态模式(CTRL)
COUNTFLAG SysTick计数完成为1,默认为0、CLKSOURCE时钟源选择 0=AHB/8,1=AHB、TICKINT:1=异常请求 ENABLE 使能位
重载寄存器(LOAD)
RELOAD 计到0时会被重转的值
当前数值寄存器(VAL)
CURRENT 可以读取,写入则清零
软件:
串口
通讯方式:全双工:两个设备同时收发数据
半双工:可以收发数据,但是并不同时
单工:通讯方向固定
时钟方式:同步:统一的时钟线(下降沿或上升沿采样)
异步:约定速率,数据打包,存在起始位、终止位、校验位
UART
物理层:TLL电平转换 TXD/RXD
协议层:
UART中断:P184,表21-4
初始化:
USART时钟初始化
编程:1.使能RX\TX对应的GPIO(包括端口使能和时钟使能),并初始化USART时钟
- 配置USART
- 配置USART中断用以接收数据
- 使能USART
中断配置:
USART初始化
服务函数:
中断服务(接收)ucTemp全局变量=接收到的字符串
重定义版本:
使用例:printf("\r\n 这是一个通过串口通信指令控制 RGB 彩灯实验 \n");
ch=getchar();
需要注意的是串口一次只能发送8位数据,超出8位应当分批处理