极速赛车手机官网

STM32USART串口库函数介绍之USART_Init

2019-09-24来源: eefocus关键字:STM32  USART  串口库函数  USART_Init

本文将介绍USART串口的库函数,总的来说有以下函数体:


※ USART_Init函数:初始化所使用的串口外设


※ USART_Cmd函数:使能或者失能USART外设


※ USART_ITConfig函数:使能或者失能指定的USART中断


※ USART_SendData函数:通过外设USARTx发送单个数据


※ USART_ReceiveData函数:返回USARTx最近解释接收到的数据


※ USART_GetFlagStatus函数:检查指定的USART标志位设置与否


※ USART_ClearFlag函数:清楚USARTx的待处理标志位


※ USART_GetITStatus函数:检查指定的USART中断发生与否


接下来分开阐述以上几种函数以及其用法和相关注意事项


1.USART_Init函数


USART_Init函数的功能是初始化异步串口,包括选定使用的串口,设定串口的数据传输速率、数据位数、检验方式、停止位、流量控制方式等,是串口最重要的库函数。


USART_InitTypeDef定义于文件 中,具体如下:


typedef struct


{


u32 USART_BaudRate;


极速赛车手机官网u16 USART_WordLength;


极速赛车手机官网u16 USART_StopBits;


u16 USART_Parity;


u16 USART_HardwareFlowControl;


u16 USART_Mode;


} USART_InitTypeDef;


USART_WordLength提示了在一个帧中传输或者接收到的数据位数;


USART_WordLength_8b;8位数据


USART_WordLength_9b;9位数据


USART_StopBits定义了发送的停止位数目;


USART_StopBits_1 在帧结尾传输1个停止位


USART_StopBits_0。5 在帧结尾传输0。5个停止位


USART_StopBits_2 在帧结尾传输2个停止位


USART_StopBits_1。5 在帧结尾传输1。5个停止位


USART_Parity定义了奇偶模式


USART_Parity_No 奇偶失能


USART_Parity_Even 偶模式


USART_Parity_Odd 奇模式


USART_HardwareFlowControl指定了硬件流控制模式使能还是失能


USART_HardwareFlowControl_None 硬件流控制失能


USART_HardwareFlowControl_RTS 发送请求RTS使能


USART_HardwareFlowControl_CTS 清除发送CTS使能


USART_HardwareFlowControl_RTS_CTS RTS和CTS使能


USART_Mode指定了使能或者失能发送和接收模式


极速赛车手机官网USART_Mode_Tx 发送使能


USART_Mode_Rx 接收使能


 


实例:初始化异步串口1,速率为19200,8为数据,1个停止位,无检验,无流量控制,接收发送使能。


USART_InitTypeDef USART_InitStructure;


USART_InitStructure.USART_BaudRate = 19200;


USART_InitStructure。USART_WordLength = USART_WordLength_8b;


USART_InitStructure.USART_StopBits = USART_StopBits_1;


USART_InitStructure。USART_Parity = USART_Parity_No;


USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_RTS_CTS;


极速赛车手机官网USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;


USART_Init(USART1, &USART_InitStructure); 

关键字:STM32  USART  串口库函数  USART_Init 编辑:什么鱼 引用地址:http://news.1900222.com/mcu/ic475436.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:使用MDK创建stm32 库函数工程简单教程
下一篇:STM32库USART_ITConfig的坑

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32 CAN 通讯发送不能连续,不能接收
1. 今天调试CAN, STM32F334C8T6,做一个生物PCR监测的项目,用到CAN,程序写完后,调试,发现发送只能发送16帧,而且不能接收,用的是USB2CAN2. 检查程序初始化部分如下u8 CAN1_Init(u16 BaudRate,u8 mode){    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);                                &nbs
发表于 2019-09-30
stm32与伺服驱动器进行can通信
实验室师兄之前用stm32之间进行can通信,其中一个作为主机,另外作为从机,从机负责电机运转,并取出电机的速度,然后通过can通信发送给主机,然后主机通过串口与上位机进行通信。这一部分操作可以参照以下链接:https://www.ncnynl.com/archives/201703/1414.html现在我们选择用伺服驱动器与一个stm32进行can通信,从而实现对电机的控制,目前我们实现的是对电机的速度输入,启动电机,(并进行速度反馈,进行OLED输出,从而进行电机的PID调节)。首先我们选择了以下图示伺服驱动器,驱动器这块选择淘宝搜索可进行can通信的编码器应该可以找到类似产品然后按照手册,我们将电机的编码器信号线CN2
发表于 2019-09-30
stm32与伺服驱动器进行can通信
小用stm32f4-CAN控制器(使用库函数)
目标实验平台:stm32f4-discovery,板载STM32F407VGT6。写的时候忘记掉可以用“报文”这个词,于是就很愚昧的都使用了一帧信息这样的表达。。意思是一样的!这里首先说一下CAN总线。CAN总线时一种工业总线,展开来说就是控制器局域网,Controller Area Network常常用在汽车和工业控制的通讯中。也就是说,在汽车上,各种控制器常常是通过CAN总线进行通讯的。具体到他是谁发明的有什么历史就不详述了,百度百科一大堆我自己看了也记不清~只是这两天在调两个STM32通过CAN总线进行最简单的收发通信,这里就简要介绍一下其通信的建立过程也就是简单的收发功能,至于其中更复杂的错误检测等功能我也只看过介绍
发表于 2019-09-30
小用stm32f4-CAN控制器(使用库函数)
STM32的CAN总线的接收双FIFO使用方法
通过下面的框图我们可以看到,STM32F013有两个接收FIFO但是实际的使用中如何让着两个FIFO都被使用呢,解决办法就在这里,1. STM32F103有0-13共14个过滤器组,每个过滤器组都可以绑定指定的FIFO。2. 特别需要注意的一点是,FIFO0和FIFO1的接收对应不同的中断入口,切记。分别是DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0DCD     CAN1_RX1_IRQHandler  &nbs
发表于 2019-09-30
STM32的CAN总线的接收双FIFO使用方法
STM32-F407 CAN的双机通讯
直奔主题,我是在原子哥F407例程的基础上想实现双机CAN通讯我用的核心板为STM32-F407ZGT6,原理图上看到PA11、PA12引脚可以复用为CAN1_RX和CAN1_TX,在与CAN收发器接线时不要接错,PA11与收发器TXD相连,PA12与收发器RXD相连。收发器建议用HVP230,可以用板子3.3V供电;TJA1050也可以,不过需要5V供电,这点需要注意。CAN的初始化:u8 CAN1_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode){   GPIO_InitTypeDef      &nbs
发表于 2019-09-30
STM32-F407 CAN的双机通讯
关于由CubeMx 生成stm32f4+freertos,不正常分析之堆栈大小设置
freertos官方手册上有说,移植中出现的问题大多数是由堆栈设置不合理造成的,今天结合自身遇到问题分析一下1.任务堆栈设置过小,很容易造成硬件溢出,跳转到void HardFault_Handler(void);调试方法,可以通过调用函数,UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask );来跟踪剩余堆栈,不过在CubeMx中的Configuration->FreeRtos->Include parameters中使能uxTaskGetStackHighWaterMark函数;2.整体设置过小,TOTAL_HEAP_S
发表于 2019-09-30
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD。com。cn, Inc。 All rights reserved
极速赛车手机版下载 极速赛车手机官网 极速赛车双面盘 极速赛车双面盘 极速赛车双面盘 极速赛车手机官网 极速赛车手机官网 极速赛车APP 极速赛车APP下载 极速赛车手机官网