API-S7816-CASE1:S7816 TX MODE
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | 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 | 2019-1-10 |
>dma_chn_irq_status_clr() | 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() | s7816_set_clk() | s7816_set_clk(0x20) | Set the divider of clock of 7816 module |
s7816_set_rx_buf() | s7816_set_rx_buf((unsigned short *)&recvBuff,sizeof(recvBuff)) | Set address and size of buffer for 7816 module of MCU |
s7816_set_pin() | s7816_set_pin(S7816_TRX_D7) | Initiate 7816 module pin |
uart_reset() | Reset uart digital registers from 0x90 ~ 0x9f |
uart_init_baudrate() | uart_init_baudrate(9600,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) | EnableUart Rx/Tx dma irq |
uart_irq_enable() | uart_irq_en(0, 0) | Disable uart RX/TX irq |
irq_enable() | enable global interrupt |
s7816_set_half_duplex() | s7816_set_half_duplex(S7816_TX) | Transform half duplex mode of 7816 |
main_loop() | s7816_dma_send() | s7816_dma_send((unsigned char*)trans_buff) | Send data |
Variables above are defined as below
volatile __attribute__((aligned(4))) unsigned char trans_buff[16] = {0x05,0x00,0x00,0x00,0xFF,0x10,0x12,0xFD,0x00};
API-S7816-CASE2:S7816 RX MODE
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | if(dma_chn_irq_status_get() & FLD_DMA_CHN_UART_RX == FLD_DMA_CHN_UART_RX) | Determine whether RX interrupt flag is right in DMA MODE | 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 |
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() | s7816_set_clk() | s7816_set_clk(0x20) | Set the divider of clock of 7816 module |
s7816_set_rx_buf() | s7816_set_rx_buf((unsigned short *)&recvBuff,sizeof(recvBuff)) | Set address and size of buffer for 7816 module of MCU |
s7816_set_pin() | s7816_set_pin(S7816_TRX_D7) | Initiate 7816 module pin |
uart_reset() | Reset uart digital registers from 0x90 ~ 0x9f |
uart_init_baudrate() | uart_init_baudrate(9600,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 |
s7816_set_half_duplex() | s7816_set_half_duplex(S7816_RX) | Transform half duplex mode of 7816 |
main_loop() | None | Main program loop |
Variables above are defined as below
volatile __attribute__((aligned(4))) unsigned char recvBuff[48] = {0x00};
History Record
Date | Description | Author |
2019-1-10 | initial release | SP/LJW |