[stm32] 4-3 USART的标准库编程(上)

前言

  • 本笔记内容,为本人依据B站UP主“铁头山羊”视频内容(本人为其粉丝),归纳整理总结而来,如有侵权,联系立即删除,同时有想详细了解的也可进行观看bilibili铁头山羊

  • 硬件:STM32F103C8T6

  • 软件:Keil

4-3 USART的标准库编程(上)

标准库编程接口

void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);

// @简介:串口初始化
// @参数:USARTx - 选择要从操作的的串口,可以是USART1,USART2,USART3,UART4,UART5
// @参数:USART_InitStruct - 初始化参数,USART——InitTypedef结构体指针类型
    USART_InitTypeDef USART_InitStruct
    uint32_t USART_BaudRate; 			//设置波特率
    uint16_t USART_WordLength;			//数据位长度
    uint16_t USART_StopBits; 			//停止位长度
    uint16_t USART_Parity;				//奇偶校验
    uint16_t USART_Mode; 				//收发模式选择
    uint16_t USART_HardwareFlowControl; //硬件流控制选择
// @返回值:None
USART_InitTypeDef USART_InitStruct;
USART_InitStruct.USART_BaudRate = 9600;
USART_InitStruct.USART_WordLength = USART_WordLength_8b;
USART_InitStruct.USART_StopBits = USART_StopBits_1;
USART_InitStruct.USART_Parity = USART_Parity_No;
USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_Init(USART1, &USART_InitStruct); 

void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);

// @简介:控制USART总开关的断开和闭合(总开关)
// @参数:USARTx - 选择要操作的串口,可以是USART1,USART2,USART3,UART4,UART5
// @参数:NewState - 开关状态,ENABLE - 闭合,DISABLE - 断开
USART_Cmd(USART1, ENABLE);
USART_Cmd(USART1, DISABLE);

uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

// @简介:从RDR读取数据(读RDR寄存器)
// @参数:USARTx - 选择要操作的串口,可以是USART1,USART2,USART3,UART4,UART5
// @返回值:读取到的数据
uint16_t receivedData = USART_ReceiveData(USART1);

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

// @简介:向TDR写数据(写TDR寄存器)
// @参数:USARTx - 选择要操作的串口,可以是USART1,USART2,USART3,UART4,UART5
// @参数:Data - 写入要写的数据
// @返回值:None
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_SendData(USART1, 0x5a);

FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);

// @简介:读标志位
// @参数:USARTx - 选择要操作的串口,可以是USART1,USART2,USART3,UART4,UART5
// @参数:USART_FLAG - 标志位名称 ,可以是USART_IT_PE,USART_IT_TXE,USART_IT_TC,USART_IT_RXNE,USART_IT_ORE_RX,USART_IT_IDLE,USART_IT_LBD,USART_IT_CTS,USART_IT_ERR,USART_IT_ORE_ER,USART_IT_NE,USART_IT_FE
// @返回值:标志位状态,SET - 1,RESET - 0
while(USART_GetFlagStatus(USART1, USART_IT_TXE) == RESET);
while(USART_GetFlagStatus(USART1, USART_IT_RXNE) == RESET);
if(USART_GetFlagStatus(USART1, USART_IT_PE) == SET);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值