Variables used in the following cases are defined as below
__attribute__((aligned(4))) unsigned char rec_buff[rec_buff_Len]={0};
__attribute__((aligned(4))) unsigned char trans_buff[trans_buff_Len] = {0x0c, 0x00, 0x00, 0x00, 0x11, 0x22, 0x33, 0x44,0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc};
API-UART-CASE1:UART DMA MODE
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | Rx IRQ | if(dma_chn_irq_status_get() & FLD_DMA_CHN_UART_RX == FLD_DMA_CHN_UART_RX) | get IRQ status of uart | 2019-1-10 |
dma_chn_irq_status_clr() | dma_chn_irq_status_clr(FLD_DMA_CHN_UART_RX) | clear UART RX interrupt flag |
uart_dmairq_rx_cnt++ | interrupt processing function |
Tx IRQ | if(dma_chn_irq_status_get() & FLD_DMA_CHN_UART_TX == FLD_DMA_CHN_UART_TX) | Determine whether TX interrupt flag is right in DMA MODE |
dma_chn_irq_status_clr(FLD_DMA_CHN_UART_TX) | Clear UART TX interrupt flag |
uart_dmairq_tx_cnt++ | Interrupt processing function |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_1M) | RF mode initialization [optional] |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | uart_recbuff_init() | uart_recbuff_init( (unsigned short *)&rec_buff, sizeof(rec_buff) ) | Data receive buffer initialization function |
uart_gpio_set() | uart_gpio_set(UART_TX_PA2, UART_RX_PA0) | Set uart tx/rx pin |
uart_reset() | Reset uart digital registers from 0x90 ~ 0x9f |
uart_init_baudrate() | uart_init_baudrate(115200,CLOCK_SYS_CLOCK_HZ,PARITY_NONE, STOP_BIT_ONE) | UART module initialization |
uart_dma_enable() | uart_dma_enable(1, 1) | Enable UART DMA function |
irq_enable_type() | irq_enable_type(FLD_IRQ_DMA_EN) | Enable DMA irq |
dma_chn_irq_enable() | dma_chn_irq_enable(FLD_DMA_CHN_UART_RX Ι FLD_DMA_CHN_UART_TX, 1) | Enable Uart Rx/Tx dma irq |
uart_irq_enable() | uart_irq_enable(0, 0) | Disable uart RX/TX irq |
irq_enable() | enable global interrupt |
main_loop() | uart_dma_send() | uart_dma_send( (unsigned short*)&trans_buff ) | Uart send data |
API-UART-CASE2:UART NDMA MODE
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | please refer to Driver Demo | Interrupt handler function [Mandatory] | 2019-1-10 |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_1M) | RF mode initialization [optional] |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | uart_recbuff_init() | uart_recbuff_init( (unsigned short *)&rec_buff, sizeof(rec_buff) ) | Data receive buffer initialization function |
uart_gpio_set() | uart_gpio_set(UART_TX_PA2, UART_RX_PA0) | Set uart tx/rx pin |
uart_reset() | Reset uart digital registers from 0x90 ~ 0x9f |
uart_init_baudrate() | uart_init_baudrate(115200,CLOCK_SYS_CLOCK_HZ,PARITY_NONE, STOP_BIT_ONE) | UART module initialization |
uart_dma_enable() | uart_dma_enable(0, 0) | Disable UART DMA function |
irq_disable_type() | irq_disable_type(FLD_IRQ_DMA_EN) | Clear DMA irq |
dma_chn_irq_enable() | dma_chn_irq_enable(FLD_DMA_CHN_UART_RX Ι FLD_DMA_CHN_UART_TX, 0) | Disable Rx/Tx dma irq |
uart_irq_enable() | uart_irq_enable(1, 0) | Enable Uart RX irq |
uart_ndma_irq_triglevel() | uart_ndma_irq_triglevel(1,0) | Set the trigger level |
irq_enable() | Interrupt enable |
main_loop() | uart_ndma_send_byte() | uart_ndma_send_byte(trans_buff[i]) | Uart send data |
API-UART-CASE3:UART CTS MODE
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | None | Interrupt handler function [Mandatory] | 2019-1-10 |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_1M) | RF mode initialization [optional] |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | uart_recbuff_init() | uart_recbuff_init( (unsigned short *)&rec_buff, sizeof(rec_buff) ) | Data receive buffer initialization function |
uart_gpio_set() | uart_gpio_set(UART_TX_PA2, UART_RX_PA0) | Set uart tx/rx pin |
uart_reset() | Reset uart digital registers from 0x90 ~ 0x9f |
uart_init_baudrate() | uart_init_baudrate(115200,CLOCK_SYS_CLOCK_HZ,PARITY_NONE, STOP_BIT_ONE) | UART module initialization |
uart_set_cts() | uart_set_cts(1, STOP_VOLT, UART_CTS_PA3) | Configure CTS pin |
uart_dma_enable() | uart_dma_enable(0, 0) | Disable UART DMA function |
irq_disable_type() | irq_disable_type(FLD_IRQ_DMA_EN) | Clear DMA irq |
dma_chn_irq_enable() | dma_chn_irq_enable(FLD_DMA_CHN_UART_RX Ι FLD_DMA_CHN_UART_TX, 0) | Disable Uart Rx/Tx dma irq |
uart_irq_enable() | uart_irq_enable(0, 0) | Disable uart RX/TX irq |
irq_enable() | Interrupt enable |
main_loop() | uart_ndma_send_byte() | uart_ndma_send_byte(trans_buff[i]) | Uart send data |
API-UART-CASE4:UART RTS MODE
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | None | Interrupt handler function [Mandatory] | 2019-1-10 |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_1M) | RF mode initialization [optional] |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | uart_recbuff_init() | uart_recbuff_init( (unsigned short *)&rec_buff, sizeof(rec_buff) ) | Data receive buffer initialization function |
uart_gpio_set() | uart_gpio_set(UART_TX_PA2, UART_RX_PA0) | Set uart tx/rx pin |
uart_reset() | Reset uart digital registers from 0x90 ~ 0x9f |
uart_init_baudrate() | uart_init_baudrate(115200,CLOCK_SYS_CLOCK_HZ,PARITY_NONE, STOP_BIT_ONE) | UART module initialization |
uart_set_rts() | (uart_set_rts(1, RTS_MODE, RTS_THRESH, RTS_INVERT,UART_RTS_PA4) | Configure RTS pin |
uart_dma_enable() | uart_dma_enable(0, 0) | Disable UART DMA function |
irq_disable_type() | irq_disable_type(FLD_IRQ_DMA_EN) | Clear DMA irq |
dma_chn_irq_enable() | dma_chn_irq_enable(FLD_DMA_CHN_UART_RX Ι FLD_DMA_CHN_UART_TX, 0) | Disable Uart Rx/Tx dma irq |
uart_irq_enable() | uart_irq_enable(1, 0) | Enable Uart RX irq |
uart_ndma_irq_triglevel() | uart_ndma_irq_triglevel(1,0) | Set the trigger level |
irq_enable() | Interrupt enable |
main_loop() | None | Main program loop |
History Record
Date | Description | Author |
2019-1-10 | initial release | SP/LJW |