一、实验目的
- 掌握UART异步串行通信基本编程方法。
- 以串行通信接收中断为例掌握中断的基本编程方法方法。
二、实验设备和资料
软硬件工具和实验一相同,包括:
- 硬件部分:PC或笔记本电脑一台、AHL-STM32L431开发套件一套
- 软件部分:从苏州大学嵌人式学习社区网站,按照教材1.1.2节内容,下载相关的电子资源。
- 软件环境:按照教材1.1.2节内容,进行集成开发环境的安装。
- 资料:嵌入式技术基础与实践(第6版),王宜怀等. 清华大学出版社
三、实验内容
- 运行并理解..\04\-Software\CH06文件夹中的几个程序。
- 实现UART_2串口的接收程序,当收到字符时:
①在电脑的输出窗口显示下一个字符,如收到A显示B;
②亮灯:收到字符G,亮绿灯;收到字符R,亮红灯;收到字符B,亮蓝灯;收到其他字符,不亮灯。
实现方式:
(1) 用构件调用方式实现;
(2) UART部分用直接地址方式实现(即不调用uart.c中的函数,其他部分如GPIO、中断设置可调用函数)。
四、程序源码
写出实验内容2的主要程序的源码。
(1)
int main(void)
{
volatile uint32_t* RCC_AHB2; //GPIO的A口时钟使能寄存器地址
volatile uint32_t* RCC_APB1; //UART的2口时钟使能寄存器地址
volatile uint32_t* gpio_ptr; //GPIO的A口基地址
volatile uint32_t* uart_ptr; //uart2端口的基地址
volatile uint32_t* gpio_mode; //引脚模式寄存器地址=口基地址
volatile uint32_t* gpio_afrl; //GPIO复用功能低位寄存器
volatile uint32_t* uart_brr; //UART波特率寄存器地址
volatile uint32_t* uart_isr; // UART中断和状态寄存器基地址
volatile uint32_t* uart_cr1; //UART控制寄存器1基地址