📄 serial_bsp_stm3240x.c
字号:
/*$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 + -