@@ -79,21 +79,23 @@ namespace unit {
7979
8080class GPIOImplV1 : public AdapterGPIOBase ::GPIOImpl {
8181public:
82- GPIOImplV1 () : AdapterGPIOBase::GPIOImpl(-1 , -1 )
83- {
84- }
85- GPIOImplV1 (const int8_t rx_pin, const int8_t tx_pin) : AdapterGPIOBase::GPIOImpl(rx_pin, tx_pin)
82+ explicit GPIOImplV1 (const int8_t rx_pin = -1 , const int8_t tx_pin = -1 ) : AdapterGPIOBase::GPIOImpl(rx_pin, tx_pin)
8683 {
84+ _rx_config.channel = RMT_CHANNEL_MAX;
85+ _tx_config.channel = RMT_CHANNEL_MAX;
8786 }
8887 virtual ~GPIOImplV1 ()
8988 {
90- rmt_tx_stop (_tx_config.channel );
91- rmt_driver_uninstall (_tx_config.channel );
92- clear_use_rmt_channel (_tx_config.channel );
93-
94- rmt_rx_stop (_rx_config.channel );
95- rmt_driver_uninstall (_rx_config.channel );
96- clear_use_rmt_channel (_rx_config.channel );
89+ if (_tx_config.channel != RMT_CHANNEL_MAX) {
90+ rmt_tx_stop (_tx_config.channel );
91+ rmt_driver_uninstall (_tx_config.channel );
92+ clear_use_rmt_channel (_tx_config.channel );
93+ }
94+ if (_rx_config.channel != RMT_CHANNEL_MAX) {
95+ rmt_rx_stop (_rx_config.channel );
96+ rmt_driver_uninstall (_rx_config.channel );
97+ clear_use_rmt_channel (_rx_config.channel );
98+ }
9799 }
98100
99101 virtual bool begin (const gpio::adapter_config_t & cfg) override
0 commit comments