void OSView_InitTarget (INT32U baud_rate) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; OSView_TmrInit(); /* Initialize the free running timer */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART3); GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_USART3); /* Configure USARTx_Tx as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOC, &GPIO_InitStructure); /* Configure USARTx_Rx as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOC, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = baud_rate; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No ; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_ITConfig(USART3,USART_IT_RXNE,ENABLE); USART_Init(USART3, &USART_InitStructure); USART_Cmd(USART3, ENABLE); /* Enable the USARTx Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); }
void OSView_InitTarget (INT32U baud_rate) { GPIO_InitTypeDef gpio_init; USART_InitTypeDef usart_init; USART_ClockInitTypeDef usart_clk_init; OSView_TmrInit(); /* Initialize the free running timer */ /* ----------------- INIT USART STRUCT ---------------- */ usart_init.USART_BaudRate = baud_rate; usart_init.USART_WordLength = USART_WordLength_8b; usart_init.USART_StopBits = USART_StopBits_1; usart_init.USART_Parity = USART_Parity_No ; usart_init.USART_HardwareFlowControl = USART_HardwareFlowControl_None; usart_init.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; usart_clk_init.USART_Clock = USART_Clock_Disable; usart_clk_init.USART_CPOL = USART_CPOL_Low; usart_clk_init.USART_CPHA = USART_CPHA_2Edge; usart_clk_init.USART_LastBit = USART_LastBit_Disable; #if (OS_VIEW_COMM_SEL == OS_VIEW_UART_1) BSP_PeriphEn(BSP_PERIPH_ID_USART1); /* ----------------- SETUP USART1 GPIO ---------------- */ BSP_PeriphEn(BSP_PERIPH_ID_IOPA); /* Configure GPIOA.9 as push-pull */ gpio_init.GPIO_Pin = GPIO_Pin_9; gpio_init.GPIO_Speed = GPIO_Speed_50MHz; gpio_init.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &gpio_init); /* Configure GPIOA.10 as input floating */ gpio_init.GPIO_Pin = GPIO_Pin_10; gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &gpio_init); /* ------------------ SETUP USART1 -------------------- */ USART_Init(USART1, &usart_init); USART_ClockInit(USART1, &usart_clk_init); USART_Cmd(USART1, ENABLE); BSP_IntVectSet(BSP_INT_ID_USART1, OSView_RxTxISRHandler); BSP_IntEn(BSP_INT_ID_USART1); #endif #if (OS_VIEW_COMM_SEL == OS_VIEW_UART_2) BSP_PeriphEn(BSP_PERIPH_ID_USART2); /* ----------------- SETUP USART2 GPIO ---------------- */ BSP_PeriphEn(BSP_PERIPH_ID_IOPA); /* Configure GPIOA.2 as push-pull */ gpio_init.GPIO_Pin = GPIO_Pin_2; gpio_init.GPIO_Speed = GPIO_Speed_50MHz; gpio_init.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &gpio_init); /* Configure GPIOA.3 as input floating */ gpio_init.GPIO_Pin = GPIO_Pin_3; gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &gpio_init); /* ------------------ SETUP USART2 -------------------- */ USART_Init(USART2, &usart_init); USART_ClockInit(USART2, &usart_clk_init); USART_Cmd(USART2, ENABLE); BSP_IntVectSet(BSP_INT_ID_USART2, OSView_RxTxISRHandler); BSP_IntEn(BSP_INT_ID_USART2); #endif #if (OS_VIEW_COMM_SEL == OS_VIEW_UART_3) BSP_PeriphEn(BSP_PERIPH_ID_USART3); /* ----------------- SETUP USART3 GPIO ---------------- */ BSP_PeriphEn(BSP_PERIPH_ID_IOPB); /* Configure GPIOB.10 as push-pull */ gpio_init.GPIO_Pin = GPIO_Pin_10; gpio_init.GPIO_Speed = GPIO_Speed_50MHz; gpio_init.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &gpio_init); /* Configure GPIOB.11 as input floating */ gpio_init.GPIO_Pin = GPIO_Pin_11; gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &gpio_init); /* ------------------ SETUP USART3 -------------------- */ USART_Init(USART3, &usart_init); USART_ClockInit(USART3, &usart_clk_init); USART_Cmd(USART3, ENABLE); BSP_IntVectSet(BSP_INT_ID_USART3, OSView_RxTxISRHandler); BSP_IntEn(BSP_INT_ID_USART3); #endif }