⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial_bsp_stm3240x.c

📁 STM3240G-Eval_uCOS-III
💻 C
📖 第 1 页 / 共 2 页
字号:
/*$PAGE*/
/*
*********************************************************************************************************
*                                       SerialBSP_STM32_USARTx_CfgGPIO()
*
* Description : Configure device/peripheral input/output pins.
*
* Argument(s) : flow_ctrl   Flow control enabled.
*
*               perr        Pointer to variable that will receive the return error code from this function :
*
*                               SERIAL_ERR_NONE                 Device/peripheral GPIO configured successfully.
*                               SERIAL_ERR_DRV_INVALID          Device configuration invalid.
*
* Return(s)   : none.
*
* Caller(s)   : SerialDrv_Open() via 'pdev->BSP_API->CfgGPIO()'.
*
* Note(s)     : none.
*********************************************************************************************************
*/

static  void  SerialBSP_STM32_USART1_CfgGPIO (CPU_BOOLEAN   flow_ctrl,
                                              SERIAL_ERR   *perr)
{
    if (flow_ctrl == DEF_ENABLED) {
        *perr = SERIAL_ERR_DRV_INVALID;
         return;
    }

   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART2_CfgGPIO (CPU_BOOLEAN   flow_ctrl,
                                              SERIAL_ERR   *perr)
{
    if (flow_ctrl == DEF_ENABLED) {
        *perr = SERIAL_ERR_DRV_INVALID;
         return;
    }

   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART3_CfgGPIO (CPU_BOOLEAN   flow_ctrl,
                                              SERIAL_ERR   *perr)
{
    GPIO_InitTypeDef  GPIO_InitStructure;

    
    if (flow_ctrl == DEF_ENABLED) {
        *perr = SERIAL_ERR_DRV_INVALID;
         return;
    }
    
                                                                /* Configure GPIOC.10 as push-pull.                     */
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_USART3);

                                                                /* Configure GPIOC.11 as input floating.                 */
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_11;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART3);    

   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART4_CfgGPIO (CPU_BOOLEAN   flow_ctrl,
                                              SERIAL_ERR   *perr)
{
    if (flow_ctrl == DEF_ENABLED) {
        *perr = SERIAL_ERR_DRV_INVALID;
         return;
    }

   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART5_CfgGPIO (CPU_BOOLEAN   flow_ctrl,
                                              SERIAL_ERR   *perr)
{
    if (flow_ctrl == DEF_ENABLED) {
        *perr = SERIAL_ERR_DRV_INVALID;
         return;
    }

   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART6_CfgGPIO (CPU_BOOLEAN   flow_ctrl,
                                              SERIAL_ERR   *perr)
{
    if (flow_ctrl == DEF_ENABLED) {
        *perr = SERIAL_ERR_DRV_INVALID;
         return;
    }

   *perr = SERIAL_ERR_NONE;
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       SerialBSP_STM32_USARTx_CfgInt()
*
* Description : Configure device/peripheral interrupt.
*
* Argument(s) : pdev        Pointer to device.
*
*               perr        Pointer to variable that will receive the return error code from this function :
*
*                               SERIAL_ERR_NONE                 Device/peripheral interrupt configured successfully.
*
* Return(s)   : none.
*
* Caller(s)   : SerialDrv_Open() via 'pdev->BSP_API->CfgInt()'.
*
* Note(s)     : none.
*********************************************************************************************************
*/

static  void  SerialBSP_STM32_USART1_CfgInt (SERIAL_DEV  *pdev,
                                             SERIAL_ERR  *perr)
{
    SerialDev_STM32_USART1_DevPtr = pdev;  

    BSP_IntVectSet(BSP_INT_ID_USART1, SerialBSP_STM32_USART1_IntHandler);
    BSP_IntEn(BSP_INT_ID_USART1);
    
   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART2_CfgInt (SERIAL_DEV  *pdev,
                                             SERIAL_ERR  *perr)
{
    SerialDev_STM32_USART2_DevPtr = pdev;

    BSP_IntVectSet(BSP_INT_ID_USART2, SerialBSP_STM32_USART2_IntHandler);
    BSP_IntEn(BSP_INT_ID_USART2);
    
   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART3_CfgInt (SERIAL_DEV  *pdev,
                                             SERIAL_ERR  *perr)
{
    SerialDev_STM32_USART3_DevPtr = pdev;
    
    BSP_IntVectSet(BSP_INT_ID_USART3, SerialBSP_STM32_USART3_IntHandler);
    BSP_IntEn(BSP_INT_ID_USART3);    

   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART4_CfgInt (SERIAL_DEV  *pdev,
                                             SERIAL_ERR  *perr)
{
    SerialDev_STM32_USART4_DevPtr = pdev;

    BSP_IntVectSet(BSP_INT_ID_USART4, SerialBSP_STM32_USART4_IntHandler);
    BSP_IntEn(BSP_INT_ID_USART4);
    
   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART5_CfgInt (SERIAL_DEV  *pdev,
                                             SERIAL_ERR  *perr)
{
    SerialDev_STM32_USART5_DevPtr = pdev;

    BSP_IntVectSet(BSP_INT_ID_USART5, SerialBSP_STM32_USART5_IntHandler);
    BSP_IntEn(BSP_INT_ID_USART5);
    
   *perr = SERIAL_ERR_NONE;
}

static  void  SerialBSP_STM32_USART6_CfgInt (SERIAL_DEV  *pdev,
                                             SERIAL_ERR  *perr)
{
    SerialDev_STM32_USART6_DevPtr = pdev;

    BSP_IntVectSet(BSP_INT_ID_USART6, SerialBSP_STM32_USART6_IntHandler);
    BSP_IntEn(BSP_INT_ID_USART6);
    
   *perr = SERIAL_ERR_NONE;
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                     SerialBSP_STM32_USARTx_ClkFreqGet()
*
* Description : Get peripheral clock frequency.
*
* Argument(s) : none.
*
* Return(s)   : Peripheral clock frequency, in Hz.
*
* Caller(s)   : SerialDrv_Open() via 'pdev->BSP_API->ClkFreqGet()'.
*
* Note(s)     : none.
*********************************************************************************************************
*/

static  CPU_INT32U  SerialBSP_STM32_USART1_ClkFreqGet (void)
{
    CPU_INT32U  clk_freq;


    clk_freq = BSP_PeriphClkFreqGet(BSP_PERIPH_ID_USART1);
    return (clk_freq);
}

static  CPU_INT32U  SerialBSP_STM32_USART2_ClkFreqGet (void)
{
    CPU_INT32U  clk_freq;


    clk_freq = BSP_PeriphClkFreqGet(BSP_PERIPH_ID_USART2);
    return (clk_freq);
}

static  CPU_INT32U  SerialBSP_STM32_USART3_ClkFreqGet (void)
{
    CPU_INT32U  clk_freq;


    clk_freq = BSP_PeriphClkFreqGet(BSP_PERIPH_ID_USART3);
    return (clk_freq);
}

static  CPU_INT32U  SerialBSP_STM32_USART4_ClkFreqGet (void)
{
    CPU_INT32U  clk_freq;


    clk_freq = BSP_PeriphClkFreqGet(BSP_PERIPH_ID_USART4);
    return (clk_freq);
}

static  CPU_INT32U  SerialBSP_STM32_USART5_ClkFreqGet (void)
{
    CPU_INT32U  clk_freq;


    clk_freq = BSP_PeriphClkFreqGet(BSP_PERIPH_ID_USART5);
    return (clk_freq);
}

static  CPU_INT32U  SerialBSP_STM32_USART6_ClkFreqGet (void)
{
    CPU_INT32U  clk_freq;


    clk_freq = BSP_PeriphClkFreqGet(BSP_PERIPH_ID_USART6);
    return (clk_freq);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                     SerialBSP_STM32_USARTx_IntHandler()
*
* Description : Handle serial port interrupt.
*
* Argument(s) : none.
*
* Return(s)   : none.
*
* Caller(s)   : This is an ISR.
*
* Note(s)     : none.
*********************************************************************************************************
*/

void  SerialBSP_STM32_USART1_IntHandler (void)
{
    SERIAL_DEV      *p_dev;
    SERIAL_DEV_CFG  *p_cfg;


    p_dev = (SERIAL_DEV *)SerialDev_STM32_USART1_DevPtr;
    p_cfg = p_dev->Dev_Cfg;
    p_cfg->Drv_API->ISR_Handler(p_dev, SERIAL_ISR_TYPE_UNKNOWN);
}

void  SerialBSP_STM32_USART2_IntHandler (void)
{
    SERIAL_DEV      *p_dev;
    SERIAL_DEV_CFG  *p_cfg;


    p_dev = (SERIAL_DEV *)SerialDev_STM32_USART2_DevPtr;
    p_cfg = p_dev->Dev_Cfg;
    p_cfg->Drv_API->ISR_Handler(p_dev, SERIAL_ISR_TYPE_UNKNOWN);
}

void  SerialBSP_STM32_USART3_IntHandler (void)
{
    SERIAL_DEV      *p_dev;
    SERIAL_DEV_CFG  *p_cfg;


    p_dev = (SERIAL_DEV *)SerialDev_STM32_USART3_DevPtr;
    p_cfg = p_dev->Dev_Cfg;
    p_cfg->Drv_API->ISR_Handler(p_dev, SERIAL_ISR_TYPE_UNKNOWN);
}

void  SerialBSP_STM32_USART4_IntHandler (void)
{
    SERIAL_DEV      *p_dev;
    SERIAL_DEV_CFG  *p_cfg;


    p_dev = (SERIAL_DEV *)SerialDev_STM32_USART4_DevPtr;
    p_cfg = p_dev->Dev_Cfg;
    p_cfg->Drv_API->ISR_Handler(p_dev, SERIAL_ISR_TYPE_UNKNOWN);
}

void  SerialBSP_STM32_USART5_IntHandler (void)
{
    SERIAL_DEV      *p_dev;
    SERIAL_DEV_CFG  *p_cfg;


    p_dev = (SERIAL_DEV *)SerialDev_STM32_USART5_DevPtr;
    p_cfg = p_dev->Dev_Cfg;
    p_cfg->Drv_API->ISR_Handler(p_dev, SERIAL_ISR_TYPE_UNKNOWN);
}

void  SerialBSP_STM32_USART6_IntHandler (void)
{
    SERIAL_DEV      *p_dev;
    SERIAL_DEV_CFG  *p_cfg;


    p_dev = (SERIAL_DEV *)SerialDev_STM32_USART6_DevPtr;
    p_cfg = p_dev->Dev_Cfg;
    p_cfg->Drv_API->ISR_Handler(p_dev, SERIAL_ISR_TYPE_UNKNOWN);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -