STM32 实验 串口实验
STM32 串口实验
串口设置的一般步骤:
1.串口时钟使能,GPIO时钟使能
2.串口复位
3.GPIO端口模式设置
4.串口参数初始化
5.开启中断并初始化NVIC(如果需要开启中断才需要这个步骤)
6.使能串口
7.编写中断处理函数
串口初始化和中断接收的文件在共用文件SYSTEM—USART文件夹内,
1.串口时钟/GPIO时钟使能:
串口和GPIO都是挂载在APB2总线,
使能函数:
RCC_APB2periphClockCma(RCC_APB2periph_USARTx | RCC_APB2peiphClockCmd_GPIOx,
EANBLE);//x表示串口位号和GPIO端口号
2.串口复位
函数:USART_DeInit()
比如复位串口1
USART_DeInit(USART1)
3.GPIO端口模式设置:
1.设置GPIO_pin脚—GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
2.设置GPIO端口速率—GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz
3.设置GPIO模式—GPIO_InitStructure.GPIO_Mode = GPIO_mode_AF_PP;
4.初始化GPIO端口—GPIO_Init(GPIOA,&GPIO_InitStructure);
4.串口参数初始化
串口初始化由函数:USART_Init()实现
void USART_Init(USART_TypeDef * USARTx,USART_TypeDef * USART_InitStruct)
第一参数是确定串口号;
第二个参数用来设置串口的参数,主要有:
1.波特率设置—USART_InitStructure.USART_BaudRate = bound;
2.字长设置—USART_InitStructure.USART_WordLendth = USART_WordLength_8b
3.设置停止位—USART_InitStructure.USART_StopBits = USART_StopBits_1;
4.检测有奇偶校验—UASRT_InitStructure.USART_Parity = USART_Parity_No;
5.检测有无硬件数据流控制—USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
6.设置收发模式—USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_TX;
7.初始化串口—USART_Init(USARTx,&GPIO_InitStructure);
5数据收发
数据的发送和接收 是通过数据寄存器 USART_DR来实现;
发送数据:USART_SendData(USARTx,uint16_t Data)
接收数据:USART_ReceiveData(USARTx)
6串口状态
串口状态由状态寄存器 USART_SR 读取,主要关注第5-6位:RXNE和TC、
RXNE(读数据寄存器非空):这个位置被置1的时候,表示已经有数据被接收到并且可以读取出来。此时 应该去读取USART_DR,让该位清零或者直接向这个位写0来清零。
TC(发送完成):这个位被置1时,表示USART_DR内的数据被发送完成了,如果设置了这个位的中断,中断就会产生。清零方式:1.读USART_SR,写USART_DR;2.直接写0.
读取串口状态的函数是:USART_GetFlagStatus(USARTx,USART_FLAG_xxxx);
USART_FLAG_xxxx 表示我们需要查看串口的哪种状态,比如RXNE 或者 TC
7.串口使能
串口使能函数:USART_Cmd()
例:USART_Cmd(USART1,EANBLE) //使能串口1
8.开启串口响应中断
开启串口中断,还需要使能串口中断;串口中断使能函数:USART_ITConfig(USARTx,USART_IT_xxxx,ENAVLE)
USART_IT_xxxx:表示标识的使能串口的类型,比如RXNE 或者TC
9.获取相应的中断状态
使用的函数是:USART_GetITStatus(USARTx,USART_IT_xxxx)
比如:USART_GetITStaysa(USART1,USART_IT_TC)
硬件验证:开发板上RX/TX 接到 六合一串口模块上的TX/RX上;GND接GND 让开发板和串口模块共地。打开XCOM V2.0串口助手,选择COM口,设置波特率(与软件设置的波特率一样),勾选发送新行。
STM32 实验 串口实验相关推荐
- ARM接口实验—串口实验
一.串口简介 串行接口(Serial Interface)是指数据一位一位地顺序传送 特点: 串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成: 异步串行接口: 异步串行是指U ...
- 利用STM32 的串口来发送和接收数据实验
0目标 1 STM32 串口简介 2 硬件设计 3 软件设计 4 下载验证 0.目标 利用串口 1.STM32 串口简介 串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能, GPIO ...
- STM32之USART-串口通信(含串口实验详细解析)
STM32之串口通信 - USART(含串口实验详细解析) 开发环境:Window 10 开发工具:Keil uVision5 MDK 硬件:STM32F103 资料参考: [正点原子]STM32F1 ...
- STM32 ADC转换实验
摘自:STM32 ADC转换实验 作者:追兮兮 发布时间: 2020-10-29 09:42:24 网址:https://blog.csdn.net/weixin_44234294/article/d ...
- STM32超声波模块实验(定时器实现)
实验材料准备 1个HC-SR04超声波模块 1台STM32F103ZET6开发板 若干杜邦线 HC-SR04模块简介 STM32定时器设置 实验中接收发送信号都用定时器,方便管理 上表在<STM ...
- STM32 F103 基础实验
索引 [1]led灯实验 [2]定时器计时 [3]矩阵按键 [4]OLED显示实验 [4 ...
- USB虚拟串口实验_STM32F1开发指南——USB学习笔记
前言 STM32F103系列芯片都自带USB接口,不过STM32F103的USB都只能用来做设备,而不能用作主机. 目录: 53.1 USB简介 USBF103自带的USB符合USB2.0规范. ...
- (实验4)单片机,STM32F4学习笔记,代码讲解【串口实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 串口中断程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] (实 ...
- 基于STM32F103ZET6库函数串口实验
基于STM32F103ZET6库函数串口实验 本次实验实现如下功能 串口设置的一般步骤可以总结为如下几个步骤 与串口基本配置直接相关的几个固件库函数 1.串口时钟使能. 2.串口复位. 3.串口参数初 ...
最新文章
- spring data mongo比较两个字段查询
- Java Script中常见操作
- 利率计算中的套路!用 Python 告诉你究竟亏了多少!
- Web.sitemap网站导航
- Redis的基本操作二
- css类选择器优先级 大于 标签选择器
- Linux下如何同时启动多个Tomcat服务器
- 一个经典的对象级别插件的开发
- ie6使用绝对定位position:absolute,box不显示
- 高斯双边模糊_OpenCV 学习:9 双边滤波bilateralFilter
- 通达信众赢全部破解指标(完美无错源码副图)
- 南昌大学计算机接收调剂的条件,关于2018年河南昌大学学硕士研究生接收调剂程序及要求的须知详情...
- 新版标准日本语初级_第二课
- Iphone备份SHSH的方法步骤
- android手机打不开网页视频播放器,手机看网页视频打不开解决方法
- 墨天轮沙龙 | 东方通张唐:东方通中间件助力信创发展
- Android中获取系统所认为的最小滑动距离TouchSlop
- 「面向对象程序设计-C++」学习笔记(下半部分)
- GRP-U8怎么增加项目
- LeetCode-183. 从不订购的客户( Customers Who Never Order)。
热门文章
- logstash5.X 时差8小时问题
- matlab保存图片如何保证dpi,Matlab保存图片(dpi要求)
- 银行技术岗python_中信银行总行信息技术管理部 区块链研发工程师
- 前端-h5直播视频流(xgplayer 篇)
- 机器学习综述与“Hello World”实战
- java 团购_java短信接口和团购网站强强结合,优势明显
- JQuery 表格隔行换色
- PyMySQL模块安装指南
- 流量限制(rate-limiting)
- 阿里、腾讯、百度月饼哪家强?吃完17块后奉上最全测评