完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单 便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 stm32f103 串口通讯大致可以分为这五步 1.初始化gpio口,使能RX和TX引脚GPIO时钟 2.初始化USART,和USART时钟; 3.初始化nvic 总中断 4.编写字符串发送函数 5.编写USART 中断服务函数 1.初始化gpio口,使能RX和TX引脚GPIO时钟 void init_uart_gpio(void) { GPIO_InitTypeDef tx; GPIO_InitTypeDef rx; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); tx.GPIO_Mode=GPIO_Mode_AF_PP; tx.GPIO_Pin=GPIO_Pin_9; tx.GPIO_Speed=GPIO_Speed_50MHz; rx.GPIO_Mode=GPIO_Mode_IN_FLOATING; rx.GPIO_Pin=GPIO_Pin_10; GPIO_Init(GPIOA,&tx); GPIO_Init(GPIOA,&rx); } 2.初始化USART,和USART时钟; void init_uart1() { USART_InitTypeDef uart; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); uart.USART_BaudRate=115200; uart.USART_HardwareFlowControl= USART_HardwareFlowControl_None; uart.USART_Parity=USART_Parity_No; uart.USART_StopBits=USART_StopBits_1; uart.USART_WordLength=USART_WordLength_8b; uart.USART_Mode= USART_Mode_Rx|USART_Mode_Tx; USART_Init(USART1,&uart); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_Cmd(USART1,ENABLE); 3.初始化nvic 总中断 void init_uart_nvic(void) { NVIC_InitTypeDef nvic; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); nvic.NVIC_IRQChannel=USART1_IRQn; nvic.NVIC_IRQChannelPreemptionPriority=1; nvic.NVIC_IRQChannelSubPriority= 1; nvic.NVIC_IRQChannelCmd =ENABLE; NVIC_Init(&nvic); } 4.编写字符串发送函数 void Usart_SendByte(USART_TypeDef *pUSARTx,uint8_t ch) { USART_SendData(pUSARTx,ch); while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TXE)==RESET); } void Usart_SendString(USART_TypeDef *pUSARTx,char *str) { while(*str!=' |