实验目的;更加熟练的掌握STM32的开发环境,实现STM32串口收发通信实验。 实验过程: 新建工程:新建工程的步骤在此就不一一解释了,有需要学习的请参照零基础开发STM32单片机程序系列一或者按照下面的方法进行项目的修改。打开上次新建工程目录,找到.ioc文件双击打开后如图2所示。 图1 上次工程目录 图2 打开后的界面 单片机引脚配置:配置单片机的时钟,修改单片机引脚对新的串口外设接口进行定义(主要定义串口的端口例如你选择的是串口几,因为很多的单片机都是有多组串口的)。本例程以串口1为例如图3所示。在clock configuration配置系统的详细时钟,在configuration中设置具体的串口等外设的具体参数,比如说串口的波特率(115200,9600,4800等)两个设备之间的通讯参数必须一致才能正常通信,否则会产生无法通信或者乱码等情况,串口的停止位等具体如图4所示。注:当对应的引脚配置成功后会显示为绿色。 图3 串口的引脚配置 图4 串口的参数配置 代码的自动生成:至此我们对串口的操作整体框架就配置完成了,下面就进行代码的自动生成,然后到我们所配置的编译环境下去工作了。点击project下的代码生成选项软件自动执行代码生成工作,生成完毕后点击open project就此打开工程如图5所示。打开工程编译无误后进行串口功能性配置如图6所示。 图5 打开编译后的工程 串口的功能配置:根据实验目的所描述的那样我们要实现串口的收发和功能那么我们就要找到串口的收发函数然后修改函数的参数,还要在对串口进行初始化设置。在main.c文件中我们会看到串口的初始化参数我们可以根据自己的设备要求配置不同的波特率,数据长度,停止位,奇偶校验位等。初始化完毕后就要在while(1)函数下添加执行函数,串口的操作函数在stm32f4xx_hal_uart.h函数下可以找到如下图7所示,其分为三种方式分别为轮询方式,中断方式和DMA三种方式。大家可以根据自己的需要来选择,这里以轮询方式为例,接下来把操作函数复制到main函数中。 图6 串口初始化参数 图7 串口三种操作函数 串口操作代码:将串口的操作函数复制到main函数中后进行参数修改。发送操作函数中的参数UART_HandleTypeDef *huart 这句用自己定义的串口号代替,uint8_t *pData这句用你所要发送内容的地址代替,uint16_t Size这句用所发送内容的大小代替。接下来大家可以根据自己的需要来定义自己的收发内容了(注意哦,在设置之前记得对发送接收数据进行初始化处理哦)修改后如下图9所示。 图8 串口执行函数需要替换的地方 图9 修改后的程序 |
|