UART demo2

- uart的参考代码demo2,简单实现数据的回写,使用查询方式读取数据。 ``` /** * @file uart_demo2.c * @ingroup peripheral * @brief UART外设Demo * ***********************************************************************************/ #include "softap_api.h" #if DEMO_TEST #include "xy_peripheral.h" // CSP prot and PIN set #define UART_PRCM_CLK PRCM_CKG_CTL_USART1 #define UART_PORT UART1 #define UART_REMAP_TX REMAP_UART_TXD #define UART_REMAP_RX REMAP_UART_RXD #define UART_TX_PIN GPIO_PIN_NUM_6 #define UART_RX_PIN GPIO_PIN_NUM_7 // task config #define UART_TASK_PRIORITY 10 #define UART_TASK_STACK_SIZE 1024 // task handler and semaphore UINT32 g_uart_TskHandle_demo2 = -1; /** * @brief UART读写DEMO * * @code * len = xy_UART_ReadBuf(UART_PORT, rcv_buf, sizeof(rcv_buf)); xy_sleep(1000); if(len > 0) { xy_UART_WriteBuf(UART_PORT, rcv_buf, len); } * * @endcode * */ void uart_task_demo2(void) { char rcv_buf[128] = {0}; int len = 0; char buf[20]; while(1) { len = xy_UART_ReadBuf(UART_PORT, rcv_buf, sizeof(rcv_buf)); xy_sleep(1000); if(len > 0) { xy_UART_WriteBuf(UART_PORT, rcv_buf, len); } } } /** * @brief 初始化UART接口 * @note 在配置IO前需要清空配置寄存器并开启外设时钟 * * @code * xy_PRCM_ClockCmd(UART_PRCM_CLK, ENABLE); xy_PRCM_ClockCmd(PRCM_CKG_CTL_GPIO, ENABLE); //csp uart config xy_GPIO_ClearConfig(UART_TX_PIN); xy_GPIO_ClearConfig(UART_RX_PIN); xy_GPIO_Remapping(UART_TX_PIN, UART_REMAP_TX); xy_GPIO_Remapping(UART_RX_PIN, UART_REMAP_RX); xy_GPIO_SetIOMode(UART_TX_PIN, GPIO_MODE_HW_PER); xy_GPIO_SetIOMode(UART_RX_PIN, GPIO_MODE_HW_IN_PU); xy_UART_Init(UART_PORT, 9600, UART_DATA_BITS_8, UART_STOP_BITS_1, UART_PARITY_EVEN); // UART enable xy_UART_Cmd(UART_PORT, ENABLE); * @endcode * */ void uart_gpio_init_demo2(void) { xy_PRCM_ClockCmd(UART_PRCM_CLK, ENABLE); xy_PRCM_ClockCmd(PRCM_CKG_CTL_GPIO, ENABLE); //csp uart config xy_GPIO_ClearConfig(UART_TX_PIN); xy_GPIO_ClearConfig(UART_RX_PIN); xy_GPIO_Remapping(UART_TX_PIN, UART_REMAP_TX); xy_GPIO_Remapping(UART_RX_PIN, UART_REMAP_RX); xy_GPIO_SetIOMode(UART_TX_PIN, GPIO_MODE_HW_PER); xy_GPIO_SetIOMode(UART_RX_PIN, GPIO_MODE_HW_IN_PU); xy_UART_Init(UART_PORT, 9600, UART_DATA_BITS_8, UART_STOP_BITS_1, UART_PARITY_EVEN); // UART enable xy_UART_Cmd(UART_PORT, ENABLE); } /** * @brief 这个函数为UARTdemo提供了一个工作线程 * * @return UINT32 */ UINT32 uart_task_init_demo2(void) { UINT32 uwRet = LOS_NOK; uwRet = xy_TaskCreate((TaskFunc_t)uart_task_demo2, "uart_task_demo2", UART_TASK_STACK_SIZE, NULL, UART_TASK_PRIORITY, &g_uart_TskHandle_demo2); return uwRet; } #endif