1.USART_Init
函数原型:void USART_Init (USART_TypeDef*USARTx , USART_InitTypeDef*USART_InitStruct)
功能:根据USART_InitStruct中指定的参数初始化外设USARTx
参数:
- USARTx:x可以是1、2、3来选择USART。
- 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外设
参数:
- USARTx:x可以是1、2、3来选择USART
- NewState:外设USARTx的新状态。这个参数可以取ENABLE或者DISABLE
返回值:无
例子:USART_Cmd (USART1,ENABLE); //使能USART1
3.USART_SendData
函数原型:void USART_SendData (USART_TypeDef*USARTx,u8 Data)
功能:通过外设USARTx发送单个数据
参数:
- USARTx:x可以是1、2、3来选择USART
- 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标志位置位与否
参数:
- USARTx:x可以是1、2、3来选择USART
- 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);