| | |
| | | */ |
| | | #include "app.h" |
| | | #include "app_log.h" |
| | | #define UART_RECV_BUF_SIZE 128 |
| | | #define UART_SEND_BUF_SIZE 128 |
| | | #define UART_TEST_SIZE 8 |
| | | |
| | | uint8_t revDataBuf[UART_RECV_BUF_SIZE]; |
| | | uint8_t sendDataBuf[UART_SEND_BUF_SIZE]; |
| | | uint8_t rx_changdu; |
| | | extern uint8_t shengji_flag; |
| | | extern uint8_t only_one; |
| | | void app_uart_rx_dma_callback(UART_Cb_Flag_Opt flag, uint8_t *pOutPtr, uint16_t size) |
| | | { |
| | | // printf("UART Rx with DMA Done, recv data size = %d.\n", size); |
| | | |
| | | // Copy data from UART Rx buffer to Tx buffer |
| | | // memcpy(sendDataBuf, pOutPtr, size); |
| | | memcpy(revDataBuf, pOutPtr, size); |
| | | if(revDataBuf[0]==0x55&&revDataBuf[1]==0xAA&&revDataBuf[2]==0x75 |
| | | &&revDataBuf[3]==0x70&&revDataBuf[4]==0x64&&revDataBuf[5]==0x61 |
| | | &&revDataBuf[6]==0x74&&revDataBuf[7]==0x65) |
| | | { |
| | | // HAL_UART_SendData_DMA(&UART0_OBJ, revDataBuf, UART_TEST_SIZE); |
| | | shengji_flag=1; |
| | | only_one=1; |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | // HAL_Status sts = HAL_UART_SendData_DMA(&UART0_OBJ, sendDataBuf, UART_TEST_SIZE); |
| | | // if (sts != HAL_OK) |
| | | // { |
| | | // printf("Error: HAL Uart Send Data with DMA Fail, error code = %d!\n", sts); |
| | | // } |
| | | memset(revDataBuf, 0, 128); |
| | | HAL_Status sts = HAL_UART_ReceiveData_DMA(&UART0_OBJ, revDataBuf, UART_TEST_SIZE); |
| | | if (sts != HAL_OK) |
| | | { |
| | | // printf("Error: HAL Uart Receive Data with DMA Fail, error code = %d!\n", sts); |
| | | } |
| | | |
| | | } |
| | | |
| | | void app_uart_tx_dma_callback(UART_Cb_Flag_Opt flag, uint8_t *pOutPtr, uint16_t size) |
| | | { |
| | | // printf("UART Tx with DMA Done, sent data size = %d.\n", size); |
| | | |
| | | // // Start UART Rx with DMA |
| | | // HAL_Status sts = HAL_UART_ReceiveData_DMA(&UART0_OBJ, revDataBuf, UART_TEST_SIZE); |
| | | // if (sts != HAL_OK) |
| | | // { |
| | | //// printf("Error: HAL Uart Receive Data with DMA Fail, error code = %d!\n", sts); |
| | | // } |
| | | } |
| | | |
| | | static void uart0_init(void) |
| | | { |
| | | SYS_SET_MFP(P1, 6, UART0_TX); |
| | | SYS_SET_MFP(P1, 7, UART0_RX); |
| | | GPIO_EnableDigitalPath(P1, BIT7); |
| | | |
| | | UART0_OBJ.initObj.baudRate = 921600; |
| | | UART0_OBJ.initObj.format = HAL_UART_FMT_8_N_1; |
| | | if (HAL_UART_Init(&UART0_OBJ) != HAL_OK) { |
| | | printf("Error: HAL Uart Init Fail!\n"); |
| | | } |
| | | |
| | | HAL_DMA_Init(); |
| | | |
| | | if (HAL_UART_Init_DMA(&UART0_OBJ, HAL_UART_DMA_TX, app_uart_tx_dma_callback) != HAL_OK) { |
| | | printf("Error: HAL Uart Tx DMA Init Fail!\n"); |
| | | } |
| | | if (HAL_UART_Init_DMA(&UART0_OBJ, HAL_UART_DMA_RX, app_uart_rx_dma_callback) != HAL_OK) { |
| | | printf("Error: HAL Uart Rx DMA Init Fail!\n"); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | ******************************************************************************* |
| | |
| | | void setup(void) |
| | | { |
| | | APP_LOG_INFO("app started\n"); |
| | | // Init peripheral module |
| | | uart0_init(); |
| | | |
| | | // Start UART Rx with DMA |
| | | HAL_Status sts = HAL_UART_ReceiveData_DMA(&UART0_OBJ, revDataBuf, UART_TEST_SIZE); |
| | | if (sts != HAL_OK) |
| | | { |
| | | printf("Error: HAL Uart Receive Data with DMA Fail, error code = %d!\n", sts); |
| | | } |
| | | /* ble stack initialization. */ |
| | | app_ble_init(); |
| | | |