初始化 GPIO,并将 GPIO 复用到 USART 上 配置 USART 参数 配置中断控制器并使能 USART 接收中断 使能...
USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate =115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_Mode = USART_Mode_Tx | USA...
在中断处理程序中,发送完该字符串后,不用关闭TC的中断使能TCIE,只需要清掉标志位TC;这样就能避免TC == SET 导致反复进入中断了。 void USART_Config() { ... USART_ITConfig(USART1, USART_IT_TC, ENABLE);//Tramsimssion Complete后,才产生中断. 开TC中断必须放在这里,否则还是会丢失第一字节 USART_Cmd(...
USART_ITConfig(USART1, USART_IT_TXE, ENABLE); //USART_IT_TC 之后再贴出两个简单的串口接收和发送的测试小例子: 第一种:中断接收并把接收到的数据直接发送。 [plain] view plain copy void USART1_IRQHandler(void){ unsigned char RxData; if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)...
在中断处理程序中,发送完该字符串后,不用关闭TC的中断使能TCIE,只需要清掉标志位TC;这样就能避免TC == SET 导致反复进入中断了。 void USART_Config() { ... USART_ITConfig(USART1, USART_IT_TC, ENABLE);//Tramsimssion Complete后,才产生中断. 开TC中断必须放在这里,否则还是会丢失第一字节 USART_Cmd(...
在中断处理程序中,发送完该字符串后,不用关闭TC的中断使能TCIE,只需要清掉标志位TC;这样就能避免TC == SET 导致反复进入中断了。 void USART_Config() { ... USART_ITConfig(USART1, USART_IT_TC, ENABLE);//Tramsimssion Complete后,才产生中断. 开TC中断必须放在这里,否则还是会丢失第一字节 USART_Cmd(...
函数原形 void USART_ITConfig(USART_TypeDef* USARTx, u16 USART_IT, alState NewState) 功能描述 使能或者失能指定的 USART 中断 USART_IT 描述 USART_IT_PE 奇偶错误中断 USART_IT_TXE 发送中断 USART_IT_TC 传输完成中断 USART_IT_RXNE 接收中断 ...
* @arg USART_IT_TC: Transmission complete interrupt * @arg USART_IT_RXNE: Receive Data register not empty interrupt * @arg USART_IT_IDLE: Idle line detection interrupt * @arg USART_IT_PE: Parity Error interrupt * @arg USART_IT_ERR: Error interrupt(Frame error, noise error, overrun error...
①USART_SR状态寄存器这个寄存器用到了10个位,也就代表有10中状态标志,每个标志都可以作为中断的标志位,库函数的定义如下: #define USART_IT_PE ((uint16_t)0x0028) #define USART_IT_TXE ((uint16_t)0x0727) #define USART_IT_TC ((uint16_t)0x0626) #define USART_IT_RXNE ((uint16_t)0x0525)...
USART_ClearITPendingBit(USART1, USART_IT_TC); //清除完成标志 或者 USART1->ICR |= (1<<6)...