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 实验 串口实验相关推荐

  1. ARM接口实验—串口实验

    一.串口简介 串行接口(Serial Interface)是指数据一位一位地顺序传送 特点: 串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成: 异步串行接口: 异步串行是指U ...

  2. 利用STM32 的串口来发送和接收数据实验

    0目标 1 STM32 串口简介 2 硬件设计 3 软件设计 4 下载验证 0.目标 利用串口  1.STM32 串口简介 串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能, GPIO  ...

  3. STM32之USART-串口通信(含串口实验详细解析)

    STM32之串口通信 - USART(含串口实验详细解析) 开发环境:Window 10 开发工具:Keil uVision5 MDK 硬件:STM32F103 资料参考: [正点原子]STM32F1 ...

  4. STM32 ADC转换实验

    摘自:STM32 ADC转换实验 作者:追兮兮 发布时间: 2020-10-29 09:42:24 网址:https://blog.csdn.net/weixin_44234294/article/d ...

  5. STM32超声波模块实验(定时器实现)

    实验材料准备 1个HC-SR04超声波模块 1台STM32F103ZET6开发板 若干杜邦线 HC-SR04模块简介 STM32定时器设置 实验中接收发送信号都用定时器,方便管理 上表在<STM ...

  6. STM32 F103 基础实验

    索引          [1]led灯实验         [2]定时器计时         [3]矩阵按键         [4]OLED显示实验                        [4 ...

  7. USB虚拟串口实验_STM32F1开发指南——USB学习笔记

    前言 STM32F103系列芯片都自带USB接口,不过STM32F103的USB都只能用来做设备,而不能用作主机. 目录: 53.1 USB简介 USBF103自带的USB符合USB2.0规范.   ...

  8. (实验4)单片机,STM32F4学习笔记,代码讲解【串口实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 串口中断程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] (实 ...

  9. 基于STM32F103ZET6库函数串口实验

    基于STM32F103ZET6库函数串口实验 本次实验实现如下功能 串口设置的一般步骤可以总结为如下几个步骤 与串口基本配置直接相关的几个固件库函数 1.串口时钟使能. 2.串口复位. 3.串口参数初 ...

最新文章

  1. spring data mongo比较两个字段查询
  2. Java Script中常见操作
  3. 利率计算中的套路!用 Python 告诉你究竟亏了多少!
  4. Web.sitemap网站导航
  5. Redis的基本操作二
  6. css类选择器优先级 大于 标签选择器
  7. Linux下如何同时启动多个Tomcat服务器
  8. 一个经典的对象级别插件的开发
  9. ie6使用绝对定位position:absolute,box不显示
  10. 高斯双边模糊_OpenCV 学习:9 双边滤波bilateralFilter
  11. 通达信众赢全部破解指标(完美无错源码副图)
  12. 南昌大学计算机接收调剂的条件,关于2018年河南昌大学学硕士研究生接收调剂程序及要求的须知详情...
  13. 新版标准日本语初级_第二课
  14. Iphone备份SHSH的方法步骤
  15. android手机打不开网页视频播放器,手机看网页视频打不开解决方法
  16. 墨天轮沙龙 | 东方通张唐:东方通中间件助力信创发展
  17. Android中获取系统所认为的最小滑动距离TouchSlop
  18. 「面向对象程序设计-C++」学习笔记(下半部分)
  19. GRP-U8怎么增加项目
  20. LeetCode-183. 从不订购的客户( Customers Who Never Order)。

热门文章

  1. logstash5.X 时差8小时问题
  2. matlab保存图片如何保证dpi,Matlab保存图片(dpi要求)
  3. 银行技术岗python_中信银行总行信息技术管理部 区块链研发工程师
  4. 前端-h5直播视频流(xgplayer 篇)
  5. 机器学习综述与“Hello World”实战
  6. java 团购_java短信接口和团购网站强强结合,优势明显
  7. JQuery 表格隔行换色
  8. PyMySQL模块安装指南
  9. 流量限制(rate-limiting)
  10. 阿里、腾讯、百度月饼哪家强?吃完17块后奉上最全测评