AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: 10: 11: 15: 16: #ifndef _UARTPRM_H_ 17: #define _UARTPRM_H_ 18: 19: 20: #include <stdint.h> 21: #include "lib_common/AG903_common.h" 22: #include "register/AG903_uartreg.h" 23: 24: #ifdef __cplusplus 25: extern "C" { 26: #endif 27: 28: 29: #define AG903_UART_CH_NUM (4) 30: 31: 32: #define AG903_UART_FIFO_SIZE (16) 33: 34: 35: #define AG903_UART_PSR_MAXNUM (31) 36: 37: 38: enum _AG903_UartParityType { 39: AG903_UART_PARITY_TYPE_NON = 0, 40: AG903_UART_PARITY_TYPE_ODD, 41: AG903_UART_PARITY_TYPE_EVEN, 42: AG903_UART_PARITY_TYPE_MAX, 43: }; 44: 45: 46: enum _AG903_UartWordlenType { 47: AG903_UART_WORDLEN5_STOP1 = 0, 48: AG903_UART_WORDLEN6_STOP1, 49: AG903_UART_WORDLEN7_STOP1, 50: AG903_UART_WORDLEN8_STOP1, 51: AG903_UART_WORDLEN5_STOP15, 52: AG903_UART_WORDLEN6_STOP2, 53: AG903_UART_WORDLEN7_STOP2, 54: AG903_UART_WORDLEN8_STOP2, 55: AG903_UART_WORDLEN_TYPE_MAX, 56: }; 57: 58: 59: enum _AG903_UartRxFifoTrgl { 60: AG903_UART_RXTRGL_1 = 0, 61: AG903_UART_RXTRGL_4, 62: AG903_UART_RXTRGL_8, 63: AG903_UART_RXTRGL_14, 64: AG903_UART_RXTRGL_MAX, 65: }; 66: 67: 68: enum _AG903_UartTxFifoTrgl { 69: AG903_UART_TXTRGL_1 = 0, 70: AG903_UART_TXTRGL_3, 71: AG903_UART_TXTRGL_9, 72: AG903_UART_TXTRGL_13, 73: AG903_UART_TXTRGL_MAX, 74: }; 75: 76: 77: enum _AG903_UartDmaMode { 78: AG903_UART_DMA_MODE0 = 0, 79: AG903_UART_DMA_MODE1, 80: AG903_UART_DMA_MODE_MAX, 81: }; 82: 83: 84: #define AG903_UART_RXFIFO_BIT (1<<0) 85: 86: 87: #define AG903_UART_TXFIFO_BIT (1<<1) 88: 89: 90: #define AG903_UART_ALLFIFO_BIT (AG903_UART_RXFIFO_BIT | AG903_UART_TXFIFO_BIT) 91: 92: #define AG903_UART_FLOW_RTS_BIT (1<<AG903_UARTn_IER_RTSEn_POS) 93: #define AG903_UART_FLOW_CTS_BIT (1<<AG903_UARTn_IER_CTSEn_POS) 94: #define AG903_UART_FLOW_DTR_BIT (1<<AG903_UARTn_IER_DTREn_POS) 95: #define AG903_UART_FLOW_DSR_BIT (1<<AG903_UARTn_IER_DSREn_POS) 96: 97: 98: #define AG903_UART_FLOW_ALL_BIT (AG903_UART_FLOW_RTS_BIT | AG903_UART_FLOW_CTS_BIT | AG903_UART_FLOW_DTR_BIT | AG903_UART_FLOW_DSR_BIT) 99: 100: #define AG903_UART_DETECT_RTO_BIT (1<<AG903_UARTn_STAT_RTO_POS) 101: #define AG903_UART_DETECT_CTO_BIT (1<<AG903_UARTn_STAT_CTO_POS) 102: 103: 104: #define AG903_UART_DETECT_ALL_BIT (AG903_UART_DETECT_RTO_BIT | AG903_UART_DETECT_CTO_BIT) 105: 106: #define AG903_UART_IER_DATARDY_BIT (1<<AG903_UARTn_IER_Receiver_Data_Available_POS) 107: #define AG903_UART_IER_THREMP_BIT (1<<AG903_UARTn_IER_THR_Empty_POS) 108: #define AG903_UART_IER_LINEST_BIT (1<<AG903_UARTn_IER_Receiver_Line_Status_POS) 109: #define AG903_UART_IER_MODEMST_BIT (1<<AG903_UARTn_IER_MODEM_Status_POS) 110: 111: #define AG903_UART_LSR_DATARDY_BIT (1<<AG903_UARTn_LSR_Data_Ready_POS) 112: #define AG903_UART_LSR_OVERRUN_BIT (1<<AG903_UARTn_LSR_Overrun_Error_POS) 113: #define AG903_UART_LSR_PARITY_BIT (1<<AG903_UARTn_LSR_Parity_Error_POS) 114: #define AG903_UART_LSR_FRAMING_BIT (1<<AG903_UARTn_LSR_Framing_Error_POS) 115: #define AG903_UART_LSR_BREAK_BIT (1<<AG903_UARTn_LSR_Break_Interrupt_POS) 116: #define AG903_UART_LSR_THREMP_BIT (1<<AG903_UARTn_LSR_THR_Empty_POS) 117: #define AG903_UART_LSR_TRANENP_BIT (1<<AG903_UARTn_LSR_Transmitter_Empty_POS) 118: #define AG903_UART_LSR_FIFOERR_BIT (1<<AG903_UARTn_LSR_FIFO_Data_Error_POS) 119: 120: 121: #define AG903_UART_INT_LINESTATUS (0x06) 122: 123: 124: #define AG903_UART_INT_DATAREADY (0x04) 125: 126: 127: #define AG903_UART_INT_RCVTIMEOUT (0x0C) 128: 129: 130: #define AG903_UART_INT_THREMPTY (0x02) 131: 132: 133: #define AG903_UART_INT_MODEMSTATUS (0x00) 134: 135: 136: 137: void AG903_UARTPrmSetDivisor(uint8_t ch, uint8_t pscale, uint16_t div); 138: void AG903_UARTPrmSetWordLength(uint8_t ch, uint8_t parity_type, uint8_t length_type); 139: void AG903_UARTPrmDisableFifo(uint8_t ch); 140: void AG903_UARTPrmEnableFifo(uint8_t ch); 141: void AG903_UARTPrmSetFifoTrigger(uint8_t ch, uint8_t rx_trgl, uint8_t tx_trgl); 142: void AG903_UARTPrmResetFifo(uint8_t ch, uint8_t bit); 143: void AG903_UARTPrmDisableFlowControl(uint8_t ch, uint8_t bit); 144: void AG903_UARTPrmEnableFlowControl(uint8_t ch, uint8_t bit); 145: void AG903_UARTPrmSetDmaMode(uint8_t ch, uint8_t mode); 146: void AG903_UARTPrmSetBreak(uint8_t ch, _Bool enable); 147: void AG903_UARTPrmDisableInt(uint8_t ch, uint32_t bit); 148: void AG903_UARTPrmEnableInt(uint8_t ch, uint32_t bit); 149: void AG903_UARTPrmSendData(uint8_t ch, uint8_t* buf, uint32_t sndsz); 150: void AG903_UARTPrmGetReceiveData(uint8_t ch, uint8_t* buf); 151: void AG903_UARTPrmGetIntType(uint8_t ch, uint8_t* type); 152: void AG903_UARTPrmGetLineStatus(uint8_t ch, uint8_t* status); 153: void AG903_UARTPrmGetRs485Status(uint8_t ch, uint32_t* status); 154: 155: void AG903_UARTPrmDisableRS485(uint8_t ch); 156: void AG903_UARTPrmEnableRS485(uint8_t ch); 157: void AG903_UARTPrmDisableTimeoutDetect(uint8_t ch); 158: void AG903_UARTPrmEnableTimeoutDetect(uint8_t ch); 159: void AG903_UARTPrmDisableTimeoutIntMask(uint8_t ch, uint32_t bit); 160: void AG903_UARTPrmEnableTimeoutIntMask(uint8_t ch, uint32_t bit); 161: void AG903_UARTPrmSetAutoMode(uint8_t ch, _Bool hold, _Bool setup); 162: void AG903_UARTPrmSetSetuptime(uint8_t ch, uint32_t setup_time); 163: void AG903_UARTPrmSetHoldtime(uint8_t ch, uint32_t hold_time); 164: void AG903_UARTPrmSetReceivetime(uint8_t ch, uint32_t rcv_time); 165: void AG903_UARTPrmSetCharainterval(uint8_t ch, uint32_t chara_interval); 166: void AG903_UARTPrmSetTimeout(uint8_t ch, uint32_t timeout); 167: void AG903_UARTPrmClerTimeoutStatus(uint8_t ch, uint32_t bit); 168: 169: #ifdef __cplusplus 170: } 171: #endif 172: #endif
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.