12/19

作者: 王子龙同学 | 来源:发表于2017-12-19 19:57 被阅读0次

stm32f407串口通信:

void UART1_config(void)

{

GPIO_InitTypeDef GPIO_InitStruct;

USART_InitTypeDef USART_InitStruct;

//1.配置GPIO管脚复用

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//开时钟

GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_9|GPIO_Pin_10;//同组管脚一次设置多个

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;//管脚复用

GPIO_Init(GPIOA, &GPIO_InitStruct);

//2.管脚复用绑定

GPIO_PinAFConfig(GPIOA, GPIO_PinSource9,GPIO_AF_USART1);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource10,GPIO_AF_USART1);

//3.初始化串口

USART_InitStruct.USART_BaudRate  = 9600;//波特率

USART_InitStruct.USART_WordLength = USART_WordLength_8b;//字节长度

USART_InitStruct.USART_Parity  = USART_Parity_No;//校验

USART_InitStruct.USART_StopBits = USART_StopBits_1;//停止位

USART_InitStruct.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;//模式

USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//流控

USART_Init(USART1,&USART_InitStruct);//初始化

USART_Cmd(USART1, ENABLE);//串口使能 (不是所有寄存器都需要使能)

}

void uart_send_data(u8 data)

{

USART_SendData(USART1, data);//发送数据

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);//等待标志位

}

相关文章

网友评论

      本文标题:12/19

      本文链接:https://www.haomeiwen.com/subject/cpviwxtx.html