实 验 报 告
课程名称: 微型计算机控制技术 时间: 20201029 点: D203
班级: 2017级机制3班 姓名: 杨帆 学号: 171031010304
实验项目名称: 串行通讯接口实验
实验指导教师: 赵保华 实验成绩评定:
实验目
ü通实验掌握 USART 功
掌握 STM32 USART 设置运
二 实验设备
ü硬件:信盈达STM32 实验台STlink 仿真器套件PC 机串口连接线
软件:KEIL for ARM(MDK)集成开发环境串口调试助手Windows 7810XP
三 实验容
利 PC 机串口信盈达CotexM3 实验台USART1进行输入输出通信
1)信息(姓名学号)通USART1发送PCPC通串口助手显示出
2)通 PC 机键盘实验台 USART1发送字符实验台 USART1 收字符传回 PC PC串口助手显示串口接收字符
四 实验原理
XYDSTM32F103 开发板 UART1 CH340G USB 转换串口芯片需 USB 线连接电脑电脑安装 CH340 芯片硬件驱动程序电脑会生成 COM 口通串口调试软件开 COM 口实现开发板 PC 机间通信
五 软件程序设计
1程序完成工作:
初始化串口
重定义fputc函数实现通printf函数电脑发送数
注意:重定义fputc间需开微库
检测串口接收器果数USART_DR寄存器中读取数
监测串口发送器果次数已发送完成读取字符发送PC然回(3)
mainc参考程序:
#include stm32f10xh
#include stdioh
#include uarth
int main(void)
{
UART1_Init()串口初始化
Show_Logo()通串口发送数PC
while(1)
{
USART1_Echo()串口实现回显
}
}
uartc参考程序:
#include stm32f10xh
#include uarth
#include stdioh
****************************************************
函数名:UART1_Init
形参:
返回值:
函数功:串口1初始化 PA9 TX PA8 RX
****************************************************
void UART1_Init(void)
{
GPIO_InitTypeDef GPIO_Initstructure
USART_InitTypeDef USART_Initstructure
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_USART1ENABLE)时钟初始化
GPIO_InitstructureGPIO_Pin GPIO_Pin_9
GPIO_InitstructureGPIO_Mode GPIO_Mode_AF_PP
GPIO_InitstructureGPIO_Speed GPIO_Speed_50MHz
GPIO_Init(GPIOA&GPIO_Initstructure)脚9初始化复输出脚
GPIO_InitstructureGPIO_Pin GPIO_Pin_10
GPIO_InitstructureGPIO_Mode GPIO_Mode_IN_FLOATING
GPIO_Init(GPIOA&GPIO_Initstructure)脚10初始化输入脚
USART_InitstructureUSART_BaudRate 115200配置rs232协议波特率
USART_InitstructureUSART_WordLength USART_WordLength_8b配置rs232协议数位位宽
USART_InitstructureUSART_StopBits USART_StopBits_1配置rs232协议停止位位宽
USART_InitstructureUSART_Parity USART_Parity_No配置rs232协议奇偶校验位
USART_InitstructureUSART_HardwareFlowControl USART_HardwareFlowControl_None配置rs232协议硬件流控制
USART_InitstructureUSART_Mode USART_Mode_Rx | USART_Mode_Tx接收发送
USART_Init(USART1&USART_Initstructure)串口初始化
USART_Cmd(USART1ENABLE)串口1
}
****************************************************
函数名:fputc
形参:ch代表参数 *f代表数保存方
返回值:返回参数
函数功:户printf函数调
****************************************************
int fputc (int ch FILE *f)
{
while(USART_GetFlagStatus(USART1USART_FLAG_TXE) RESET)判断串口否发送完数
USART_SendData(USART1ch)寄存器中数
return ch
}
****************************************************
函数名:USART1_Echo
形参:
返回值:
函数功:串口1回显功 电脑开发板发送数开发板接收数返回电脑
****************************************************
void USART1_Echo(void)
{
u8 ch
while(USART_GetFlagStatus(USART1USART_FLAG_RXNE) RESET)等接收数
ch USART_ReceiveData(USART1)接收数保存ch中
while(USART_GetFlagStatus(USART1USART_FLAG_TXE) RESET)等次发送数发送完成
USART_SendData(USART1ch)ch中数发送电脑
}
****************************************************
函数名:Show_Logo
形参:
返回值:
函数功:电脑显示logo
****************************************************
void Show_Logo(void)
{
printf(******************************************\n\r)
printf( 郑州信盈达电子限公司\n\r)
printf( Welcome STM32 \n\r)
printf(******************************************\n\r)
}
uarth参考程序:
#ifndef _UART_H_
#define _UART_H_
void UART1_Init(void)串口1初始化
void USART1_Echo(void)串口1回显函数
void Show_Logo(void) 终端显示LOGO
#endif
六 实验操作步骤
准备实验环境 STlink 仿真器连接 信盈达STM32 实验台板 JTAG 接口 实验台附带USB数线连接实验台板PC
新建工程编写程序完成软件设计
新建工程保存文件夹复制相应库文件
开发环境中新建工程配置工程选项
新建程序代码文件添加工程完成程序编码误程序载开发板 Flash 中 RESET 键复位
PC 机运行串口调试助手(波特率 1152001 位停止位校验位硬件流控制)发送数开发板观察实验现象
3 观察实验结果
1) PC 机串口助手接收区显示学生信息
2)通串口调试助手发送数接收区接收样数
七 实验结果:
八 心体会
通次实验学知识通学实验通实验掌握 USART 功掌握 STM32 USART 设置运感谢老师指导学帮助
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档