设置串口USART一般步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设置输出、接收引脚 PA9 PA10
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;//定义一个USART结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能GPIOA时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置端口速度
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 (Rx输出口)
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PA.10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入(Tx接收口)
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA10
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //使能USART1时钟
二、设置USART结构体成员参数
USART_ART_BaudRate = 115200; //设置串口波特率
USART_ART_WordLength = USART_WordLength_8b; //设置传输字节长度
USART_ART_StopBits = USART_StopBits_1; //设置停止位USART_StopBits_1 ((uint16_t)0x0000) 停止位为1位
USART_StopBits_0_5 ((uint16_t)0x1000) 停止位为0.5位
USART_StopBits_2 ((uint16_t)0x2000) 停止位为2位
USART_StopBits_1_5 ((uint16_t)0x3000) 停止位为1.5位
USART_ART_Parity = USART_Parity_No; //是否设置奇偶校验位(否)USART_ART_HardwareFlowControl=USART_HardwareFlowControl_N one; //配置硬件流控制
USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx; //配置串口模式(全双工)
USART_Init(USART1, &USART_InitStructure); // 初始化USART端口
USART_Cmd(USART1, ENABLE); //使能串口
三、重定向printf函数(头文件必须包含
int fputc(int ch, FILE *f)
{
USART_SendData(USART1,(unsigned char) ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
return(ch);
}