这是本文档旧的修订版!
STM32CbeMX教程五——UART通信实验
1. 新建工程:在主界面选择File–>New Project   或者直接点击ACCEE TO MCU SELECTOR  
2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置
在搜索栏的下面,提供的各  种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。
3. 配置RCC,使用外部时钟源
4. 配置调试引脚
5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output
6. 引脚模式配置
7. 设置串口
8. 时钟源设置,选择外部高速时钟源,配置为最大主频
9.  工程文件的设置, 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可  IDE我们使用的是 MDK5
10. 点击Code Generator,进行进一步配置
-  Copy all used libraries into the project folder 
-  将HAL库的所有.C和.H都复制到所建工程中 
-  Copy only the necessary library files 
-  只复制所需要的.C和.H(推荐) 
-  Add necessary library files as reference in the toolchain project configuration file 
-  不复制文件,直接从软件包存放位置导入.C和.H 
-  自行选择方式即可 
11. 然后点击GENERATE CODE  创建工程。创建成功,打开工程。
 
实验五:UART通信实验——通过命令控制LED
一、 实验目的与意义
-  了解STM32 GPIO结构 
-  了解STM32 GPIO 特征 
-  掌握USART的使用方法 
-  掌握STM32 HAL库中USART属性的配置方法 
-  掌握KEILMDK 集成开发环境使用方法 
 
二、 实验设备及平台
-  iCore3 双核心板 
-  JLINK(或相同功能)仿真器 
-  Micro USB线缆 
-  Keil MDK 开发平台 
-  STM32CubeMX开发平台 
-  装有WIN XP(及更高版本)系统的计算机 
 
三、 实验原理
-  UART简介 
-  UART,即通用同步/异步串行接收/发送器,由时钟发生器、数据发送器和接收器三大部分组成。UART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。STM32F407IGT6具有6个UART收发器,可使用相应的代码使能后使用。 
-  UART特点 
-  UART时序 - 
-  空闲位:高电平。 
-  启动位:一个低电平。 
-  字符数据:可以选择8和9位数据位。 
-  奇偶校验位:根据需要选择是否进行校验。 
-  停止位:一个高电平。 
 
-  本试验使用的芯片STM32F407IGT6,使用UART为UART_4,引脚位PA0和PA1,经过串口转USB芯片CH340转换后,可通过USB接口与计算机通讯。计算机安装 CH340 驱动后,可通过串口工具来接收串口发送的数据和向串口发送给数据。用串口工具打开iCore3对应的端口,波特率设为115200,发送相应的命令,便可以控制ARM LED的亮灭情况。 
-  串口命令如下表: 
	
		| LED_RED_ON\r\n | LED红灯亮 | 
	
		| LED_RED_OFF\r\n | LED红灯灭 | 
	
		| LED_BLUE_ON\r\n | LED蓝灯亮 | 
	
		| LED_BLUE_OFF\r\n | LED蓝灯灭 | 
	
		| LED_GREEN_ON\r\n | LED绿灯亮 | 
	
		| LED_GREEN_OFF\r\n | LED绿灯灭 | 
原理示意图如下图所示:
 
四、 实验程序
1. 主函数
2. UART结构体定义
3. 串口发送/接收函数
-  HAL_UART_Transmit();串口发送数据,使用超时管理机制  
-  HAL_UART_Receive();串口接收数据,使用超时管理机制 
-  HAL_UART_Transmit_IT();串口中断模式发送   
-  HAL_UART_Receive_IT();串口中断模式接收 
-  HAL_UART_Transmit_DMA();串口DMA模式发送 
-  HAL_UART_Transmit_DMA();串口DMA模式接收 
-  串口发送数据 
-  功能: 
-  参数: 
-  中断接收数据: 
 
4. 串口中断函数
-  功能: 
-  参数: 
-  串口中断处理函数     
-  功能: 
-  串口查询函数    
 
五、 实验步骤
-  把仿真器与iCore3的SWD调试口相连(直接相连或者通过转接器相连); 
-  把iCore3通过Micro USB线与计算机相连,为iCore3供电; 
-  打开Keil MDK 开发环境,并打开本实验工程; 
-  烧写程序到iCore3上; 
-  也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。 
 
六、 实验现象