<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>No-Std on Gibbiverse</title><link>https://scottgibb.github.io/Gibbiverse/tags/no-std/</link><description>Recent content in No-Std on Gibbiverse</description><generator>Hugo</generator><language>en-uk</language><lastBuildDate>Tue, 07 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://scottgibb.github.io/Gibbiverse/tags/no-std/index.xml" rel="self" type="application/rss+xml"/><item><title>Creating a multi platform Rust Driver: Using your driver on other platforms</title><link>https://scottgibb.github.io/Gibbiverse/posts/creating_a_multi_platform_rust_driver/part_3/</link><pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate><guid>https://scottgibb.github.io/Gibbiverse/posts/creating_a_multi_platform_rust_driver/part_3/</guid><description>&lt;p&gt;In the previous part of the series, we discussed the FT232H breakout board and how we can use it with Rust to interact with our I2C devices from a desktop environment. In this part, we will explore how we we can use our I2C driver on multiple platforms without changing any of the driver code, thanks to the &lt;code&gt;embedded-hal&lt;/code&gt; and &lt;code&gt;embedded-hal-async&lt;/code&gt; traits.&lt;/p&gt;
&lt;h2 id="the-platforms"&gt;The Platforms&lt;/h2&gt;
&lt;figure class="tc"&gt;&lt;img src="https://scottgibb.github.io/Gibbiverse/images/posts/creating_a_multi_platform_rust_driver/vendors.drawio.svg"
 alt="Chip Vendors"&gt;
&lt;/figure&gt;

&lt;p&gt;The beauty of using the &lt;code&gt;embedded-hal&lt;/code&gt; traits is that we can write our driver code once and then use it on multiple platforms without any modifications. This is because the &lt;code&gt;embedded-hal&lt;/code&gt; traits provide a common interface for interacting with hardware peripherals, regardless of the underlying platform. This means our vendors are responsible for implementing these traits in their HALs.&lt;/p&gt;</description></item></channel></rss>