USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//配置工作模式,收发一起 /* USART configuration */ USART_Init(USART1, &USART_InitStructure);// 完成串口的初始化配置 使能中断配置。 USART_ITConfig(USART1, USART_IT_TC, ENABLE); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE) 我们配置了发送传输...
//USART初始化函数 void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct); USART_InitTypeDef包含如下参数 uint32_t USART_BaudRate; /*波特率 9600/115200 921600,会帮我们自动计算好 */ uint16_t USART_WordLength; /*数据位长度 USART_WordLength_8b 8位 USART_WordLength_9b 9位 *...
在中断处理程序中,发送完该字符串后,不用关闭TC的中断使能TCIE,只需要清掉标志位TC;这样就能避免TC == SET 导致反复进入中断了。*/voidUSART_Config() {//...USART_ITConfig(USART1, USART_IT_TC, ENABLE);//Tramsimssion Complete后,才产生中断. 开TC中断必须放在这里,否则还是会丢失第一字节USART_Cmd(U...
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...
* @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...
// 设置中断类型void USART_ITConfig(USART_TypeDef * USARTx,uint16_t USART_IT,FunctionalState NewState);// 串口1接收使能USART_ITConfig(USART1, USART_IT_RXNE,ENABLE);// 发送使能USART_ITConfig(USART1, USART_IT_TC,ENABLE);6. 设置串口中断优先级、使能串口中断通道 NVIC_Init()7. 串口中断函数 IT...
IRQChannel=USART1_IRQn;NVIC_Init(&NVIC_InitStructure);}// 中断函数voidUSART1_IRQHandler(void){u8 res;if(USART_GetITStatus(USART1,USART_IT_RXNE)){res=USART_ReceiveData(USART1);USART_SendData(USART1,res);}}intmain(void){// 中断分组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);My_USART1_...
USART_ClearFlag(USART1, USART_FLAG_TC); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启相关中断 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//抢占优先级3 ...
);// 使能串口接收中断USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);// 使能串口USART_Cmd...
void USART1_IRQHandler(void) { if( USART_GetITStatus(USART1, USART_IT_TC) == SET ) { if( *pDataByte == ‘\0’ )//TC需要 读SR+写DR 方可清0,当发送到最后,到‘\0’的时候用个if判断关掉 USART_ClearFlag(USART1, USART_FLAG_TC);//不然TC一直是set, TCIE也是打开的,导致会不停进入中...