你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。

[复制链接]
wjandsq 提问时间:2014-4-16 16:50 /
部分关键源代码预览如下,原理图及手板样片随后。
 /*******************************************************************************
* 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);
}
}
 
工程源代码下载地址:  STM32_USB-FS-Device_Lib_V5.0.0.2.rar (5.45 MB, 下载次数: 130)
收藏 1 评论5 发布时间:2014-4-16 16:50

举报

5个回答
hongpeng-257553 回答时间:2014-4-17 15:34:00

RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。

非常感谢,学习了。
l516603417 回答时间:2014-4-25 17:09:55

回复:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。

学习一下,感谢!!!!
杭州_吃货 回答时间:2014-5-14 09:21:08

RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。

希望是好东西啊
jimmy_tw 回答时间:2014-5-16 07:57:59

RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。

好樣的~~
石头-395391 回答时间:2014-5-17 13:06:26

RE:【原创】【MCU实战经验】+ 利用STM32F103实现的USB-TO-RS485模块产品,源代码及原理图。

赞一个
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版