AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: int32_t AG903_UARTMgrSetRs485Param(AG903_UARTMgrHandle*handle, AG903_UARTMgrRs485Param *param) 2: { 3: int32_t retval = AG903_ENONE; 4: int32_t result; 5: uint8_t ch; 6: 7: result = UARTMgr_CheckHandle(handle, &ch); 8: if(AG903_ENONE != result) { 9: return -AG903_EINVAL; 10: } 11: if(NULL == param) { 12: return -AG903_EINVAL; 13: } 14: if( (AG903_UART_STAT_IDLE != UartChStat[ch].snd.stat) || 15: (AG903_UART_STAT_IDLE != UartChStat[ch].rcv.stat) ) { 16: return -AG903_EBUSY; 17: } 18: 19: AG903_UARTPrmSetSetuptime(ch, param->setuptime); 20: AG903_UARTPrmSetHoldtime(ch, param->holdtime); 21: 22: if(param->event & (AG903_UART_RCVTIMEOUT_BIT|AG903_UART_CHARATIMEOUT_BIT)) { 23: AG903_UARTPrmDisableTimeoutDetect(ch); 24: AG903_UARTPrmEnableTimeoutIntMask(ch, (AG903_UART_DETECT_RTO_BIT|AG903_UART_DETECT_CTO_BIT)); 25: 26: AG903_UARTPrmEnableTimeoutIntMask(ch, AG903_UART_DETECT_ALL_BIT); 27: AG903_UARTPrmClerTimeoutStatus(ch, AG903_UART_DETECT_ALL_BIT); 28: 29: AG903_UARTPrmSetReceivetime(ch, param->rcvtime); 30: AG903_UARTPrmSetCharainterval(ch, param->interval); 31: AG903_UARTPrmSetTimeout(ch, param->timeout); 32: } 33: 34: AG903_UARTPrmSetAutoMode(ch, true, true); 35: AG903_UARTPrmEnableRS485(ch); 36: 37: UartHandleStat[ch].event = param->event; 38: UartChStat[ch].rs485 = true; 39: 40: return retval; 41: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.