STM32-自学笔记(12.通过串口与PC通信,发Hello,程序用到的库函数介绍)

1.USART_Init

函数原型:void USART_Init (USART_TypeDef*USARTx , USART_InitTypeDef*USART_InitStruct)

功能:根据USART_InitStruct中指定的参数初始化外设USARTx

参数

  1. USARTx:x可以是1、2、3来选择USART。
  2. USART_InitStruct:指向结构USART_InitTypeDef的指针,包含了外设USART的配置信息。

返回值:无

参数描述:USART_InitTypeDef structure

typedef  struct

{

u32 USART_BaudRate;

u16 USART_WordLength;

u16 USART_StopBits;

u16 USART_Parity;

u16 USART_HardwareFlowConTrol;

u16 USART_Mode;

u16 USART_Clock;

u16 USART_CPOL;

u16 USART_CPHA;

u16 USART_LastBit;

}

USART_InitTypeDef;

1.USART_BaudRate,设置USART传输的波特率,常用的值有9600、115200等。

2.USART_WordLength,表示一个帧中发送或接收到的数据位数。

  •    USART_WordLength_8b       8位数据
  •    USART_WordLength_9b       9位数据

3.USART_StopBits,定义发送的停止位数目。

  • USART_StopBits_1                     在帧结尾传输1个停止位
  • USART_StopBits_0.5                  在帧结尾传输0.5个停止位
  • USART_StopBits_2                     在帧结尾传输2个停止位
  • USART_StopBits_1.5                  在帧结尾传输1.5个停止位

4. USART_Parity,定义奇偶模式

  • USART_Parity_No                         奇偶使能
  • USART_Parity_Even                     偶模式
  • USART_Parity_Odd                      奇模式

5.USART_HardwareFlowControl,使能或失能硬件流控制模式。

  • USART_HardwareFlowControl_None                            硬件流控制失能
  • USART_HardwareFlowControl_RTS                              发送请求RTS使能
  • USART_HardwareFlowControl_CTS                              清除发送CTS使能
  • USART_HardwareFlowControl_RTS_CTS                    RTS和CTS使能

6.USART_Mode,使能或失能发送和接收模式。

  • USART_Mode_Tx                       发送使能
  • USART_Mode_Rx                      接收使能

7.USART_Clock,使能或失能USART时钟。

  • USART_Clock_Enable                                USART时钟使能
  • USART_Clock_Disable                               USART时钟失能

8.USART_CPOL,指定下一周期SCLK引脚上时钟输出的极性。

  • USART_CPOL_High                             时钟高电平
  • USART_CPOL_Low                             时钟低电平

9.USART_CPHA,指定下一周期SLCK引脚上时钟输出的相位,和CPOL位一起配合来产生用户希望的时钟/数据的采样关系。

  •  USART_CPHA_1Edge                          时钟第1个边沿进行数据捕捉
  •  USART_CPHA_2Edge                          时钟第2个边沿进行数据捕捉

10.USART_LastBit,控制是否在同步模式下,在SCLK引脚上输出最后发送的那个数据字(MSB)对应的时钟脉冲。

  • USART_LastBit_Disable                           最后一位数据的时钟脉冲不从SCLK输出
  • USART_LastBit_Enable                            最后一位数据的时钟脉冲从SCLK输出

例子

USART_InitTypeDef USART_InitStructure;

USART_InitStructure.USART_BaudRate=9600;      //波特率9600

USART_InitStructure.USART_WordLength=USART_WordLength_8b;   //8个数据位

USART_InitStructure.USART_StopBits=USART_StopBits_1;        //1个停止位

USART_InitStructure.USART_Parity=USART_Parity_Odd;          //奇模式

USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_RTS_CTS;   //RTS和CTS使能

USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;    //使能发送和接收

USART_InitStructure.USART_Clock=USART_Clock_Disable;           //失能USART时钟
 
USART_InitStructure.USART_CPOL=USART_CPOL_High;                //时钟高电平

USART_InitStructure.USART_CPHA=USART_CPHA_1Edge;               //时钟第1个边沿进行数据捕获

USART_InitStructure.USART_LastBit=USART_LastBit_Enable;        //最后一个数据的时钟脉冲从SCLK输出

USART_Init(USART1,&USART_InitStructure);

2.USART_Cmd

函数原型:void USART_Cmd (USART_TypeDef*USARTx,FunctionalState NewState)

功能描述:使能或失能USART外设

参数

  1. USARTx:x可以是1、2、3来选择USART
  2. NewState:外设USARTx的新状态。这个参数可以取ENABLE或者DISABLE

返回值:无

例子:USART_Cmd (USART1,ENABLE);   //使能USART1

3.USART_SendData

函数原型:void USART_SendData (USART_TypeDef*USARTx,u8 Data)

功能:通过外设USARTx发送单个数据

参数

  1. USARTx:x可以是1、2、3来选择USART
  2. Data:待发送的数据

返回值:无

例子:USART_SendData (USART3,0x26);      //通过USART3发送数据0x26

4.USART_ReceiveData

函数原型:u8 USART_ReceiveData (USART_TypeDef*USARTx)

功能:返回USARTx最近接收到的数据。

参数:USARTx:x可以是1、2、3来选择USART

返回值:接收到的字节数据

例子://USART2接收一个8位数据

u8 RxData;

RxData=USART_ReceiveData(USART2);

5.USART_GetFlagStatus

函数原型:FlagStatus  USART_GetFlagStatus (USART_TypeDef*USARTx,u16 USART_FLAG)

功能:检查指定的USART标志位置位与否

参数

  1. USARTx:x可以是1、2、3来选择USART
  2. USART_FLAG:待检查的USART标志位

输出参数:USART_FLAG的新状态(SET或者RESET)

参数:USART_FLAG

USART_FLAG_CTS:CTS标志位                                                                 USART_FLAG_IDLE:空闲总线标志位               

USART_FLAG_LBD:LIN中断检测标志位                                                   USART_FLAG_ORE:溢出错误标志位

USART_FLAG_TXE :发送数据寄存器空标志位                                        USART_FLAG_NE:噪声错误标志位

USART_FLAG_TC:发送完成标志位                                                            USART_FLAG_FE:帧错误标志位

USART_FLAG_RXNE:接收数据寄存器非空标志位                                  USART_FLAG_PE:奇偶错误标志位

例子://检测发送寄存器是否为空(检测发送是否完成)

FlagStatus Status;

Status=USART_GetFlagStatus (USART1,USART_FLAG_TXE);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值