pub struct OutputPin { /* private fields */ }Expand description
GPIO pin configured as output.
OutputPins are constructed by converting a Pin using Pin::into_output,
Pin::into_output_low or Pin::into_output_high. The pin’s mode is automatically set to
Mode::Output.
An OutputPin can be used to change a pin’s output state.
The embedded-hal trait implementations for OutputPin can be enabled by specifying
the optional hal feature in the dependency declaration for the rpi_pal crate.
Implementations§
Source§impl OutputPin
impl OutputPin
Sourcepub fn pin(&self) -> u8
pub fn pin(&self) -> u8
Returns the GPIO pin number.
Pins are addressed by their BCM numbers, rather than their physical location.
Sourcepub fn is_set_low(&self) -> bool
pub fn is_set_low(&self) -> bool
Returns true if the pin’s output state is set to Low.
Sourcepub fn is_set_high(&self) -> bool
pub fn is_set_high(&self) -> bool
Returns true if the pin’s output state is set to High.
Sourcepub fn set_pwm(&mut self, period: Duration, pulse_width: Duration) -> Result<()>
pub fn set_pwm(&mut self, period: Duration, pulse_width: Duration) -> Result<()>
Configures a software-based PWM signal.
period indicates the time it takes to complete one cycle.
pulse_width indicates the amount of time the PWM signal is active during a
single period.
Software-based PWM is inherently inaccurate on a multi-threaded OS due to
scheduling/preemption. If an accurate or faster PWM signal is required, use the
hardware Pwm peripheral instead. More information can be found here.
If set_pwm is called when a PWM thread is already active, the existing thread
will be reconfigured at the end of the current cycle.
Sourcepub fn set_pwm_frequency(
&mut self,
frequency: f64,
duty_cycle: f64,
) -> Result<()>
pub fn set_pwm_frequency( &mut self, frequency: f64, duty_cycle: f64, ) -> Result<()>
Configures a software-based PWM signal.
set_pwm_frequency is a convenience method that converts frequency to a period and
duty_cycle to a pulse width, and then calls set_pwm.
frequency is specified in hertz (Hz).
duty_cycle is specified as a floating point value between 0.0 (0%) and 1.0 (100%).
Sourcepub fn clear_pwm(&mut self) -> Result<()>
pub fn clear_pwm(&mut self) -> Result<()>
Stops a previously configured software-based PWM signal.
The thread responsible for emulating the PWM signal is stopped at the end of the current cycle.
Sourcepub fn reset_on_drop(&self) -> bool
pub fn reset_on_drop(&self) -> bool
Returns the value of reset_on_drop.
Sourcepub fn set_reset_on_drop(&mut self, reset_on_drop: bool)
pub fn set_reset_on_drop(&mut self, reset_on_drop: bool)
When enabled, resets the pin’s mode to its original state and disables the
built-in pull-up/pull-down resistors when the pin goes out of scope.
By default, this is set to true.
§Note
Drop methods aren’t called when a process is abnormally terminated, for
instance when a user presses Ctrl + C, and the SIGINT signal
isn’t caught. You can catch those using crates such as simple_signal.