Skip to main content

Crate m5unified_sys

Crate m5unified_sys 

Source
Expand description

Raw bindings for a small C ABI shim over M5Unified.

This crate intentionally does not bind M5Unified’s C++ classes directly. Instead, native/m5u_shim.cpp exposes stable extern "C" functions that Rust can call from the higher-level m5unified crate. On non-ESP-IDF host targets these functions are stubbed so the safe wrapper and translated samples can be checked in CI without hardware.

Firmware projects targeting ESP-IDF must provide the native shim component from this crate’s native/ directory in their ESP-IDF component graph. The host stubs are compile-time conveniences only and do not simulate M5Stack hardware behavior.

Structs§

m5u_config_t
m5u_imu_convert_param_t
m5u_imu_data_t
m5u_imu_raw_data_t
m5u_led_color_t
m5u_led_strip_config_t
m5u_led_strip_rmt_config_t
m5u_mic_config_t
m5u_power_ext_port_bus_t
m5u_power_ina226_config_t
m5u_rtc_datetime_t
m5u_sd_spi_config_t
m5u_speaker_config_t
m5u_touch_detail_t

Functions§

m5u_battery_level
m5u_battery_voltage_mv
m5u_begin
m5u_begin_with_config
m5u_btn_a_is_pressed
m5u_btn_a_was_pressed
m5u_btn_a_was_released
m5u_btn_b_is_pressed
m5u_btn_b_was_pressed
m5u_btn_b_was_released
m5u_btn_c_is_pressed
m5u_btn_c_was_pressed
m5u_btn_c_was_released
m5u_button_get_click_count
m5u_button_get_debounce_thresh
m5u_button_get_hold_thresh
m5u_button_get_state
m5u_button_get_update_msec
m5u_button_is_holding
m5u_button_is_pressed
m5u_button_is_released
m5u_button_last_change
m5u_button_pressed_for
m5u_button_released_for
m5u_button_set_debounce_thresh
m5u_button_set_hold_thresh
m5u_button_set_raw_state
m5u_button_set_state
m5u_button_was_change_pressed
m5u_button_was_clicked
m5u_button_was_decide_click_count
m5u_button_was_double_clicked
m5u_button_was_hold
m5u_button_was_pressed
m5u_button_was_release_for
m5u_button_was_released
m5u_button_was_released_after_hold
m5u_button_was_single_clicked
m5u_delay_ms
m5u_display_clear_clip_rect
m5u_display_color888
m5u_display_count
m5u_display_display
m5u_display_display_busy
m5u_display_draw_arc
m5u_display_draw_arc_at
m5u_display_draw_circle
m5u_display_draw_circle_at
m5u_display_draw_ellipse
m5u_display_draw_ellipse_at
m5u_display_draw_fast_hline
m5u_display_draw_fast_hline_at
m5u_display_draw_fast_vline
m5u_display_draw_fast_vline_at
m5u_display_draw_line
m5u_display_draw_line_at
m5u_display_draw_pixel
m5u_display_draw_pixel_at
m5u_display_draw_rect
m5u_display_draw_rect_at
m5u_display_draw_round_rect
m5u_display_draw_round_rect_at
m5u_display_draw_string
m5u_display_draw_string_at
m5u_display_draw_triangle
m5u_display_draw_triangle_at
m5u_display_end_write
m5u_display_end_write_at
m5u_display_fill_arc
m5u_display_fill_arc_at
m5u_display_fill_circle
m5u_display_fill_circle_at
m5u_display_fill_ellipse
m5u_display_fill_ellipse_at
m5u_display_fill_rect
m5u_display_fill_rect_at
m5u_display_fill_round_rect
m5u_display_fill_round_rect_at
m5u_display_fill_screen
m5u_display_fill_screen_at
m5u_display_fill_triangle
m5u_display_fill_triangle_at
m5u_display_font_height
m5u_display_get_base_color
m5u_display_get_cursor_y
m5u_display_get_rotation
m5u_display_get_rotation_at
m5u_display_get_text_datum
m5u_display_get_text_datum_at
m5u_display_get_text_padding
m5u_display_get_text_padding_at
m5u_display_get_text_size_x
m5u_display_get_text_size_x_at
m5u_display_get_text_size_y
m5u_display_get_text_size_y_at
m5u_display_height
m5u_display_height_at
m5u_display_index_for_kind
m5u_display_index_for_kinds
m5u_display_print
m5u_display_print_at
m5u_display_println
m5u_display_println_at
m5u_display_scroll
m5u_display_scroll_at
m5u_display_set_brightness
m5u_display_set_clip_rect
m5u_display_set_color
m5u_display_set_color_at
m5u_display_set_cursor
m5u_display_set_cursor_at
m5u_display_set_epd_fastest
m5u_display_set_epd_mode
m5u_display_set_font
m5u_display_set_rotation
m5u_display_set_rotation_at
m5u_display_set_scroll_rect
m5u_display_set_scroll_rect_at
m5u_display_set_scroll_rect_color
m5u_display_set_scroll_rect_color_at
m5u_display_set_text_color
m5u_display_set_text_color_at
m5u_display_set_text_datum
m5u_display_set_text_padding
m5u_display_set_text_padding_at
m5u_display_set_text_scroll
m5u_display_set_text_size
m5u_display_set_text_size_at
m5u_display_set_text_wrap
m5u_display_start_write
m5u_display_start_write_at
m5u_display_text_width
m5u_display_text_width_at
m5u_display_wait_display
m5u_display_width
m5u_display_width_at
m5u_display_write_fast_hline
m5u_display_write_fast_hline_at
m5u_display_write_fast_vline
m5u_display_write_fast_vline_at
m5u_display_write_pixel
m5u_display_write_pixel_at
m5u_get_board
m5u_get_pin
m5u_get_touch_button_height
m5u_get_update_msec
m5u_i2c_begin
m5u_i2c_begin_with_port
m5u_i2c_bit_off
m5u_i2c_bit_on
m5u_i2c_get_port
m5u_i2c_get_scl
m5u_i2c_get_sda
m5u_i2c_is_enabled
m5u_i2c_read
m5u_i2c_read_register
m5u_i2c_read_register8
m5u_i2c_release
m5u_i2c_restart
m5u_i2c_scan
m5u_i2c_scan_address
m5u_i2c_set_port
m5u_i2c_start
m5u_i2c_stop
m5u_i2c_write
m5u_i2c_write_byte
m5u_i2c_write_register
m5u_i2c_write_register8
m5u_imu_begin
m5u_imu_begin_for_board
m5u_imu_clear_offset_data
m5u_imu_device_begin
m5u_imu_device_get_convert_param
m5u_imu_device_get_raw_data
m5u_imu_device_get_temp_adc
m5u_imu_device_set_int_pin_active_logic
m5u_imu_device_sleep
m5u_imu_device_who_am_i
m5u_imu_get_accel
m5u_imu_get_data
m5u_imu_get_gyro
m5u_imu_get_mag
m5u_imu_get_offset_data
m5u_imu_get_offset_data_i32
m5u_imu_get_raw_data
m5u_imu_get_temp_c
m5u_imu_get_type
m5u_imu_is_enabled
m5u_imu_load_offset_from_nvs
m5u_imu_save_offset_to_nvs
m5u_imu_set_axis_order
m5u_imu_set_axis_order_left_handed
m5u_imu_set_axis_order_right_handed
m5u_imu_set_calibration
m5u_imu_set_calibration_strength
m5u_imu_set_clock
m5u_imu_set_int_pin_active_logic
m5u_imu_set_offset_data
m5u_imu_sleep
m5u_imu_update
m5u_imu_update_mask
m5u_io_expander_available
m5u_io_expander_digital_read
m5u_io_expander_digital_write
m5u_io_expander_disable_irq
m5u_io_expander_enable_irq
m5u_io_expander_enable_pull
m5u_io_expander_get_write_value
m5u_io_expander_reset_irq
m5u_io_expander_set_direction
m5u_io_expander_set_high_impedance
m5u_io_expander_set_pull_mode
m5u_led_begin
m5u_led_count
m5u_led_display
m5u_led_get_type
m5u_led_is_enabled
m5u_led_power_hub_begin
m5u_led_power_hub_count
m5u_led_power_hub_display
m5u_led_power_hub_get_type
m5u_led_power_hub_set_brightness
m5u_led_power_hub_set_color_rgb
m5u_led_power_hub_set_colors_rgb
m5u_led_set_all_color_rgb
m5u_led_set_auto_display
m5u_led_set_brightness
m5u_led_set_color_rgb
m5u_led_set_colors_rgb
m5u_led_strip_begin
m5u_led_strip_count
m5u_led_strip_display
m5u_led_strip_get_type
m5u_led_strip_set_brightness
m5u_led_strip_set_color_rgb
m5u_led_strip_set_colors_rgb
m5u_led_strip_set_config
m5u_led_strip_set_rmt_bus_config
m5u_log_dump
m5u_log_get_enable_color
m5u_log_get_level
m5u_log_level
m5u_log_path_to_file_name
m5u_log_print
m5u_log_println
m5u_log_println_empty
m5u_log_set_callback
m5u_log_set_enable_color
m5u_log_set_level
m5u_log_set_suffix
m5u_mic_begin
m5u_mic_end
m5u_mic_get_config
m5u_mic_get_noise_filter_level
m5u_mic_is_enabled
m5u_mic_is_recording
m5u_mic_is_running
m5u_mic_record_i16
m5u_mic_record_i16_at
m5u_mic_record_i16_ex
m5u_mic_record_u8
m5u_mic_record_u8_ex
m5u_mic_recording_state
m5u_mic_set_config
m5u_mic_set_noise_filter_level
m5u_mic_set_sample_rate
m5u_micros
m5u_millis
m5u_pi4ioe5v6408_begin
m5u_pi4ioe5v6408_digital_read
m5u_pi4ioe5v6408_digital_write
m5u_pi4ioe5v6408_disable_irq
m5u_pi4ioe5v6408_enable_irq
m5u_pi4ioe5v6408_enable_pull
m5u_pi4ioe5v6408_get_write_value
m5u_pi4ioe5v6408_reset_irq
m5u_pi4ioe5v6408_set_direction
m5u_pi4ioe5v6408_set_high_impedance
m5u_pi4ioe5v6408_set_pull_mode
m5u_power_aw32001_begin
m5u_power_aw32001_get_charge_current
m5u_power_aw32001_get_charge_status
m5u_power_aw32001_get_charge_voltage
m5u_power_aw32001_is_charging
m5u_power_aw32001_set_battery_charge
m5u_power_aw32001_set_charge_current
m5u_power_aw32001_set_charge_voltage
m5u_power_axp192_begin
m5u_power_axp192_get_acin_current_ma
m5u_power_axp192_get_acin_voltage_v
m5u_power_axp192_get_aps_voltage_v
m5u_power_axp192_get_bat_state
m5u_power_axp192_get_battery_charge_current_ma
m5u_power_axp192_get_battery_discharge_current_ma
m5u_power_axp192_get_battery_level
m5u_power_axp192_get_battery_power_mw
m5u_power_axp192_get_battery_voltage_v
m5u_power_axp192_get_exten
m5u_power_axp192_get_internal_temperature_c
m5u_power_axp192_get_pek_press
m5u_power_axp192_get_vbus_current_ma
m5u_power_axp192_get_vbus_voltage_v
m5u_power_axp192_is_acin
m5u_power_axp192_is_charging
m5u_power_axp192_is_vbus
m5u_power_axp192_power_off
m5u_power_axp192_set_adc_rate
m5u_power_axp192_set_adc_state
m5u_power_axp192_set_backup
m5u_power_axp192_set_battery_charge
m5u_power_axp192_set_charge_current
m5u_power_axp192_set_charge_voltage
m5u_power_axp192_set_dcdc
m5u_power_axp192_set_exten
m5u_power_axp192_set_gpio
m5u_power_axp192_set_ldo
m5u_power_axp2101_begin
m5u_power_axp2101_clear_irq_statuses
m5u_power_axp2101_disable_irq
m5u_power_axp2101_enable_irq
m5u_power_axp2101_get_acin_current_ma
m5u_power_axp2101_get_acin_voltage_v
m5u_power_axp2101_get_aps_voltage_v
m5u_power_axp2101_get_bat_state
m5u_power_axp2101_get_battery_charge_current_ma
m5u_power_axp2101_get_battery_discharge_current_ma
m5u_power_axp2101_get_battery_level
m5u_power_axp2101_get_battery_power_mw
m5u_power_axp2101_get_battery_voltage_v
m5u_power_axp2101_get_charge_status
m5u_power_axp2101_get_internal_temperature_c
m5u_power_axp2101_get_irq_statuses
m5u_power_axp2101_get_ldo_enabled
m5u_power_axp2101_get_pek_press
m5u_power_axp2101_get_ts_voltage_v
m5u_power_axp2101_get_vbus_current_ma
m5u_power_axp2101_get_vbus_voltage_v
m5u_power_axp2101_is_acin
m5u_power_axp2101_is_bat_charger_over_temperature_irq
m5u_power_axp2101_is_bat_charger_under_temperature_irq
m5u_power_axp2101_is_charging
m5u_power_axp2101_is_vbus
m5u_power_axp2101_is_vbus_insert_irq
m5u_power_axp2101_is_vbus_remove_irq
m5u_power_axp2101_power_off
m5u_power_axp2101_set_adc_rate
m5u_power_axp2101_set_adc_state
m5u_power_axp2101_set_backup
m5u_power_axp2101_set_battery_charge
m5u_power_axp2101_set_charge_current
m5u_power_axp2101_set_charge_voltage
m5u_power_axp2101_set_ldo
m5u_power_axp2101_set_pre_charge_current
m5u_power_begin
m5u_power_bq27220_begin
m5u_power_bq27220_get_current_a
m5u_power_bq27220_get_current_ma
m5u_power_bq27220_get_voltage_mv
m5u_power_bq27220_get_voltage_v
m5u_power_deep_sleep_us
m5u_power_get_battery_current_ma
m5u_power_get_charge_state
m5u_power_get_ext_current_ma
m5u_power_get_ext_output
m5u_power_get_ext_voltage_mv
m5u_power_get_key_state
m5u_power_get_type
m5u_power_get_usb_output
m5u_power_get_vbus_voltage_mv
m5u_power_ina226_begin
m5u_power_ina226_config
m5u_power_ina226_get_bus_voltage_v
m5u_power_ina226_get_power_w
m5u_power_ina226_get_shunt_current_a
m5u_power_ina226_get_shunt_voltage_v
m5u_power_ina3221_begin
m5u_power_ina3221_get_bus_voltage_mv
m5u_power_ina3221_get_bus_voltage_v
m5u_power_ina3221_get_current_a
m5u_power_ina3221_get_shunt_voltage_mv
m5u_power_ina3221_get_shunt_voltage_v
m5u_power_ina3221_set_shunt_res
m5u_power_ip5306_begin
m5u_power_ip5306_get_battery_level
m5u_power_ip5306_is_charging
m5u_power_ip5306_set_battery_charge
m5u_power_ip5306_set_charge_current
m5u_power_ip5306_set_charge_voltage
m5u_power_ip5306_set_power_boost_keep_on
m5u_power_is_charging
m5u_power_light_sleep_us
m5u_power_power_off
m5u_power_py32pmic_begin
m5u_power_py32pmic_get_charge_current
m5u_power_py32pmic_get_charge_voltage
m5u_power_py32pmic_get_pek_press
m5u_power_py32pmic_is_charging
m5u_power_py32pmic_power_off
m5u_power_py32pmic_set_battery_charge
m5u_power_py32pmic_set_charge_current
m5u_power_py32pmic_set_charge_voltage
m5u_power_py32pmic_set_ext_output
m5u_power_set_battery_charge
m5u_power_set_charge_current
m5u_power_set_charge_voltage
m5u_power_set_ext_output
m5u_power_set_ext_port_bus_config
m5u_power_set_led
m5u_power_set_usb_output
m5u_power_set_vibration
m5u_power_timer_sleep_date_time
m5u_power_timer_sleep_seconds
m5u_power_timer_sleep_time
m5u_rtc_begin
m5u_rtc_begin_for_board
m5u_rtc_clear_irq
m5u_rtc_device_begin
m5u_rtc_device_clear_irq
m5u_rtc_device_disable_irq
m5u_rtc_device_get_date_detail
m5u_rtc_device_get_datetime_detail
m5u_rtc_device_get_irq_status
m5u_rtc_device_get_time_detail
m5u_rtc_device_get_volt_low
m5u_rtc_device_set_alarm_irq_datetime
m5u_rtc_device_set_alarm_irq_time
m5u_rtc_device_set_date_detail
m5u_rtc_device_set_datetime_detail
m5u_rtc_device_set_time_detail
m5u_rtc_device_set_timer_irq
m5u_rtc_disable_irq
m5u_rtc_get_date_detail
m5u_rtc_get_datetime
m5u_rtc_get_datetime_detail
m5u_rtc_get_irq_status
m5u_rtc_get_time_detail
m5u_rtc_get_volt_low
m5u_rtc_is_enabled
m5u_rtc_set_alarm_irq_after_seconds
m5u_rtc_set_alarm_irq_datetime
m5u_rtc_set_alarm_irq_time
m5u_rtc_set_date_detail
m5u_rtc_set_datetime
m5u_rtc_set_datetime_detail
m5u_rtc_set_system_time_from_rtc
m5u_rtc_set_time_detail
m5u_rtc_set_timer_irq
m5u_sd_begin
m5u_sd_begin_spi
m5u_sd_end
m5u_sd_is_mounted
m5u_set_log_display_index
m5u_set_log_display_type
m5u_set_log_display_types
m5u_set_primary_display_index
m5u_set_primary_display_type
m5u_set_primary_display_types
m5u_set_touch_button_height
m5u_set_touch_button_height_by_ratio
m5u_speaker_begin
m5u_speaker_channel_playing_state
m5u_speaker_end
m5u_speaker_get_channel_volume
m5u_speaker_get_config
m5u_speaker_get_volume
m5u_speaker_is_enabled
m5u_speaker_is_playing
m5u_speaker_is_running
m5u_speaker_play_i8_ex
m5u_speaker_play_i16
m5u_speaker_play_i16_ex
m5u_speaker_play_u8
m5u_speaker_play_u8_ex
m5u_speaker_play_wav
m5u_speaker_play_wav_ex
m5u_speaker_playing_channels
m5u_speaker_set_all_channel_volume
m5u_speaker_set_channel_volume
m5u_speaker_set_config
m5u_speaker_set_volume
m5u_speaker_stop
m5u_speaker_tone
m5u_speaker_tone_ex
m5u_speaker_tone_full
m5u_speaker_tone_options
m5u_touch_count
m5u_touch_get
m5u_touch_get_detail
m5u_touch_get_raw
m5u_touch_is_enabled
m5u_touch_set_flick_thresh
m5u_touch_set_hold_thresh
m5u_update

Type Aliases§

m5u_log_callback_t