部分关键源代码预览如下,原理图及手板样片随后。 /******************************************************************************* * Function Name : USART2_IRQHandler * Description : This function handles USART2 global interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ void USART2_IRQHandler(void) { if (USART_GetITStatus(USART2, USART_IT_TC) != RESET) { /* Set DE to low level pin(PA.8) */ GPIOA->BRR = GPIO_Pin_8; /* Disable the USART2 Transmit Complete interrupt */ USART_ITConfig(USART2, USART_IT_TC, DISABLE); /* Clear USART2 TC pending bit */ USART_ClearFlag(USART2, USART_FLAG_TC); } if (USART_GetITStatus(USART2, USART_IT_TXE) != RESET) { if(USART2_Tx_length){ if (USART2_Tx_length==1) { /* Set DE pin to high level pin(PA.8) */ GPIOA->BSRR = GPIO_Pin_8; USART2->DR = USART2_Tx_Buffer[USART2_Tx_ptr_out++]; /* Enable USART TC interrupt */ USART_ITConfig(USART2, USART_IT_TC, ENABLE); /* Disable USART TXE interrupt */ USART_ITConfig(USART2, USART_IT_TXE, DISABLE); } else { if(USART2_Tx_ptr_out == USART2_Tx_Start){ /* Set DE pin to high level pin(PA.8) */ GPIOA->BSRR = GPIO_Pin_8; USART2->DR = USART2_Tx_Buffer[USART2_Tx_ptr_out++]; } else { if (USART2_Tx_ptr_out < USART2_Tx_End) { USART2->DR = USART2_Tx_Buffer[USART2_Tx_ptr_out++]; } else { /* Disable USART TXE interrupt */ USART_ITConfig(USART2, USART_IT_TXE, DISABLE); /* Enable USART TC interrupt */ USART_ITConfig(USART2, USART_IT_TC , ENABLE); } } } }else{ /* Set DE to low level pin(PA.8) */ GPIOA->BRR = GPIO_Pin_8; /* Disable USART2 TXE interrupt */ USART_ITConfig(USART2, USART_IT_TXE, DISABLE); /* Disable USART2 TC interrupt */ USART_ITConfig(USART2, USART_IT_TC , DISABLE); } } if(USART_GetITStatus(USART2,USART_IT_RXNE)==SET) { /* Send the received data to the PC Host*/ USART2_To_USB_Send_Data(); } if(USART_GetFlagStatus(USART2,USART_FLAG_ORE)==SET) { (void)USART_ReceiveData(USART2); } } 工程源代码下载地址: |
【MCU实战经验】STM32F103的uCOSII详细移植
【6月培训】STM32 USB 应用实战分享(进阶)
深入浅出 | STM32MP1产品开发系列课程
GO FOR G4 | STM32G4系列产品特性及电机领域应用在线课程上线
STM32MP1产品入门与异构多核通信开发
STM32H7系列高性能产品之双核智能架构性能解析
STM32H7系列高性能产品之双核智能架构性能解析(深圳)
STM32H7系列高性能产品之双核智能架构性能解析(北京)
STM32H7系列高性能产品之双核智能架构性能解析(上海)
新一代无线双核微控制器STM32WB产品特性及BLE协议栈介绍
RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。
回复:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。
RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。
RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。
RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。