<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GPIO | 即戦力モノづくり!エンジニアへの道標</title>
	<atom:link href="https://depfields.com/tag/gpio/feed/" rel="self" type="application/rss+xml" />
	<link>https://depfields.com</link>
	<description>組み込み（マイコン）スキルを楽しんで学びながら身につけて短期間で効率よく自由自在に扱えるようになりたいと思いませんか？</description>
	<lastBuildDate>Mon, 22 May 2023 02:59:51 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.1</generator>

<image>
	<url>https://depfields.com/wp-content/uploads/2020/07/cropped-favicon-1-32x32.png</url>
	<title>GPIO | 即戦力モノづくり!エンジニアへの道標</title>
	<link>https://depfields.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GPIOオンディレイ入力アプリ【STM32のGPIO実用例】</title>
		<link>https://depfields.com/gpio-ondelay-apl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gpio-ondelay-apl</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Fri, 12 Jun 2020 15:57:45 +0000</pubDate>
				<category><![CDATA[汎用入出力を使ったアプリ]]></category>
		<category><![CDATA[GPIO]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=3233</guid>

					<description><![CDATA[<p>オンディレイ入力 Lチカが成功したあとは、STM32GPIOの入力の実用例にチャタリング防止オンディレイ入力と未使用ピン処理例のアプリを紹介します。 未使用ピンの処理</p>
<p>The post <a href="https://depfields.com/gpio-ondelay-apl/">GPIOオンディレイ入力アプリ【STM32のGPIO実用例】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img fetchpriority="high" width="640" height="362" src="https://depfields.com/wp-content/uploads/2020/06/microcontroller-3871944_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/06/microcontroller-3871944_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/06/microcontroller-3871944_640-300x170.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/microcontroller-3871944_640-320x180.jpg 320w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<h2 class="wp-block-heading">オンディレイ入力</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">Lチカが成功したあとは、<strong><a href="https://depfields.com/gpio/" target="_blank" rel="noreferrer noopener">STM32GPIOの入力</a></strong>の実用例にチャタリング防止オンディレイ入力と未使用ピン処理例のアプリを紹介します。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>チャタリング防止用に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オンディレイ入力機能</span></strong>および<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">未使用ピンの処理</span></strong>を追加したプログラムです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">チャタリング</span></strong>とはスイッチを入力したとき、接点に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">機械的な振動が発生</span></strong>して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ごく短い間隔でON/OFFの状態になること</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/chattering.jpg" alt="" class="wp-image-3287" width="231" height="196"/><figcaption>チャタリング</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オンディレイ入力</span></strong>とは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力されてから一定期間たってからONにするもの</span></strong>です。オンディレイ期間⊿よりも短い入力は無視されます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/ondelay-input.jpg" alt="" class="wp-image-3285" width="296" height="276"/><figcaption>チャタリング対策　ONディレイ入力</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オンディレイ入力</span></strong>は産業用機器制御向けのPLCプログラミングに精通している人にとってはなじみのあるものですが、組み込みアプリでも有用です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>このアプリではスイッチがONしてから1000ms後に出力がONになるオンディレイタイマを設けています。<strong>delay_ms関数</strong>で設定した期間待機するタイマを使用しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>delay_ms(1)としているので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無限ループは1msのサイクル</span></strong>となります。delay_ms関数はdelay.cで定義された関数です。この関数を使用する場合はdelay.cとdelay.hをアプリプログラムと同じ場所にコピーしておき、ヘッダファイルdelay.hで呼び込むようにします。</p>
</div></div></div>



<div class='w3eden'><!-- WPDM Link Template: Default Template -->

<div class="link-template-default card mb-2">
    <div class="card-body">
        <div class="media">
            <div class="mr-3 img-48"><img class="wpdm_icon" alt="アイコン"   src="https://depfields.com/wp-content/plugins/download-manager/assets/file-type-icons/box_download.png" /></div>
            <div class="media-body">
                <h3 class="package-title"><a href='https://depfields.com/download/gpio-ondelay/'>入力オンディレイプログラム</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 4.07 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='3251'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<div class='w3eden'><!-- WPDM Link Template: Default Template -->

<div class="link-template-default card mb-2">
    <div class="card-body">
        <div class="media">
            <div class="mr-3 img-48"><img class="wpdm_icon" alt="アイコン"   src="https://depfields.com/wp-content/plugins/download-manager/assets/file-type-icons/box_download.png" /></div>
            <div class="media-body">
                <h3 class="package-title"><a href='https://depfields.com/download/delay-function/'>delay関数</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 0.76 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='8203'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<h2 class="wp-block-heading">未使用ピンの処理</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ほとんどの場合、マイコンのピンは一部のみを使用して、残りは使用しません。使用するピンは定義をするのですが、未使用ピンはどうすればよいでしょうか。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>未使用ピンは何もしなくてもマイコンの機能自体には問題がないのですが、<strong>ノイズ等で誤作動や破壊の可能性</strong>がありますので特に製品に組み込む場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力か出力に定義して処理をしておくことが奨励</span></strong>されています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>未使用ピンの処理方法は諸説ありますが、ここでは明示的に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ピンは出力</span></strong>とし、さらに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Lレベルに指定</span></strong>しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/gpio-ondelay-apl/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/4afe2d6387fdb061443d8d2e48d62be28620ca37d59f206d5c062f9d6ed38f83.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">GPIO ON-delay input application [GPIO practical example for STM32] | Most Pow...</div></div><div class="lkc-url">https://en.depfields.com/gpio-ondelay-apl/</div><div class="lkc-excerpt">ON-delay inputAfter the successful &quot;LED-blingking&quot;, I will introduce the application of anti-chattering on-delay input and unused pin processing examples to practical examples of STM32GPIO input.This program adds an on-delay input</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/gpio-ondelay-apl/">GPIOオンディレイ入力アプリ【STM32のGPIO実用例】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lチカで始めるSTM32 Nucleoマイコン【組み込みの登竜門】</title>
		<link>https://depfields.com/gpio-led-toggle-apl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gpio-led-toggle-apl</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Fri, 12 Jun 2020 05:22:50 +0000</pubDate>
				<category><![CDATA[汎用入出力を使ったアプリ]]></category>
		<category><![CDATA[GPIO]]></category>
		<category><![CDATA[Nucleo]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=3156</guid>

					<description><![CDATA[<p>STM32のペリフェラルGPIOを設定して出力のLEDを点滅させることは実施している動作自体は単純ですが使用するマイコンの初期設定からビルド、そしてマイコンまでの転送まで一連の手順が成功したことを意味しています。まずは手 [&#8230;]</p>
<p>The post <a href="https://depfields.com/gpio-led-toggle-apl/">Lチカで始めるSTM32 Nucleoマイコン【組み込みの登竜門】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="600" height="450" src="https://depfields.com/wp-content/uploads/2020/06/d11467-3-385946-0.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/06/d11467-3-385946-0.jpg 600w, https://depfields.com/wp-content/uploads/2020/06/d11467-3-385946-0-300x225.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><a href="https://depfields.com/gpio/" target="_blank" rel="noreferrer noopener">STM32のペリフェラルGPIO</a></strong>を設定して出力のLEDを点滅させることは実施している動作自体は単純ですが使用するマイコンの初期設定からビルド、そしてマイコンまでの転送まで一連の手順が成功したことを意味しています。まずは手順にしたがって点滅まで到達してください。</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンのプログラムで最も初歩的なプログラムといえば出力に接続したLEDを任意に点灯、消灯させるいわゆる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Lチカプログラム</span></strong>ではないでしょうか。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実施している動作自体は単純なものですが、出力のLEDをコントロールすることは、使用しているマイコンの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">初期設定</span></strong>から<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プログラムビルド</span></strong>、そして<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンまでの転送</span></strong>まで一連の手順が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">成功したことを意味</span></strong>しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>開発全体から見ると小さな一歩ですが、マイコンを操作するひと、特に初心者にとってははじめの大きな関門を突破したことになります。組み込み技術の登竜門的なアプリケーションです。</p>
</div></div></div>



<h2 class="wp-block-heading">Lチカの回路</h2>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio_NUCLEO.jpg" alt="" class="wp-image-5313" width="345" height="283" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio_NUCLEO.jpg 363w, https://depfields.com/wp-content/uploads/2020/06/gpio_NUCLEO-300x245.jpg 300w" sizes="(max-width: 345px) 100vw, 345px" /><figcaption class="wp-element-caption">押ボタンスイッチとLED</figcaption></figure>



<div style="background: #ffffea; padding: 8px 19px; margin: 2em 0; border-top: solid 10px #00ccff; solid 5px #1a66ff; box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.33); word-break: break-all;">
<p><strong>設定仕様：</strong><br><strong>入力</strong>：<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">PC13</span></strong>　<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">フローティング入力</span></strong>&nbsp;押しボタンスイッチ<br><strong>出力</strong>：<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">PA5</span></strong>　<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">プッシュプル出力</span></strong>+500Ω+LED</p>
</div>
<p>&nbsp;</p>



<h2 class="wp-block-heading">プログラム解説</h2>



<div class='w3eden'><!-- WPDM Link Template: Default Template -->

<div class="link-template-default card mb-2">
    <div class="card-body">
        <div class="media">
            <div class="mr-3 img-48"><img class="wpdm_icon" alt="アイコン"   src="https://depfields.com/wp-content/plugins/download-manager/assets/file-type-icons/box_download.png" /></div>
            <div class="media-body">
                <h3 class="package-title"><a href='https://depfields.com/download/gpio/'>初歩Lチカプログラム</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 1.94 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='3194'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アプリgpio.cは入力としての<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">押しボタンSWを押したときだけ出力LEDが点灯</span></strong>するプログラムです。単純なものですが、これには<strong>マイコンを操作するための最小限の要素が含まれています</strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>GPIOをアプリケーションで使うにあたって、必須なものは<strong>①<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">指定したGPIO入力ポートのピン状態を読み込むこと</span></strong>と、②<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">指定した出力ポートに１か０を設定すること</span></strong>です。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp; ① 指定したGPIOポートのピン状態の読み込み&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>指定した入力ピンの状態を読み込むのに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIO_ReadInputDataBit関数</span></strong>を使用します。</p>
</div></div></div>



<p>関数プロトタイプ：<br>uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)</p>



<p>設定例：if((!GPIO_ReadInputDataBit(<strong>GPIOC</strong>, <strong>GPIO_Pin_13</strong>))==SET){}//PC13の読み込み</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>関数の第1引数は<strong>設定対象のGPIOポートを指定</strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-parameter2.jpg" alt="" class="wp-image-2129" width="232" height="216"/><figcaption class="wp-element-caption">GPIOポート</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>関数の第２引数は<strong>使用するピンを指定</strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-parameter3.jpg" alt="" class="wp-image-3227" width="236" height="489" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-parameter3.jpg 236w, https://depfields.com/wp-content/uploads/2020/06/gpio-parameter3-145x300.jpg 145w" sizes="(max-width: 236px) 100vw, 236px" /><figcaption class="wp-element-caption">GPIOピン</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;② 指定したGPIOポートのピンへ出力設定をセット&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>指定したGPIOポートのピンへ出力状態をセット(1)するにはGPIO_SetBits関数を使用します。</p>
</div></div></div>



<p>関数プロトタイプ：<br>void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)</p>



<p>設定例：GPIO_SetBits(<strong>GPIOA</strong>, <strong>GPIO_Pin_5</strong>);//PA5をセット(1)に設定</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>関数の引数は<strong>GPIO_ReadInputDataBit関数</strong>と<strong>同じ</strong>です。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;指定したGPIOポートのピン出力へ設定をリセット&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>指定したGPIOポートのピンへ出力状態をリセット(0)するにはGPIO_ResetBits関数を使用します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIO_SetBits関数の反転</span></strong>です。</p>
</div></div></div>



<div style="background: #ffffea; padding: 8px 19px; margin: 2em 0; border-top: solid 10px #00ccff; solid 5px #1a66ff; box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.33); word-break: break-all;">
<p>gpio.cでは押ボタンスイッチを押すと入力PC13がSET(1)となり出力PA5が１でLEDが点灯します。</p>
</div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/gpio-led-toggle-apl/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/bf83f1174a4e62b9e8dead200572789568906b2d4b83e9c04baca4bb2fc5bbd2.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">STM32 Nucleo MCU starting with LED blinking [Gateway to Embedded system] | Mo...</div></div><div class="lkc-url">https://en.depfields.com/gpio-led-toggle-apl/</div><div class="lkc-excerpt">Setting the STM32&#039;s peripheral GPIOs to blink the output LEDs is a simple operation in itself, but it means that the series of steps from the initial setup of MCU to the build and transfer to MCU have been successfully completed.The m</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/gpio-led-toggle-apl/">Lチカで始めるSTM32 Nucleoマイコン【組み込みの登竜門】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>汎用入出力【STM32のGPIO使い方詳細 】</title>
		<link>https://depfields.com/gpio/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gpio</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 03 Jun 2020 15:45:31 +0000</pubDate>
				<category><![CDATA[各周辺機能(ペリフェラル)詳細]]></category>
		<category><![CDATA[GPIO]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=2106</guid>

					<description><![CDATA[<p>STM32マイコンの汎用入出力GPIOの使い方を詳細に解説しています。ペリフェラルの中で最も基本で使用頻度の高いGPIOを使いこなせるようになることはプログラミングだけでなくインターフェースを構成している電子回路の理解も [&#8230;]</p>
<p>The post <a href="https://depfields.com/gpio/">汎用入出力【STM32のGPIO使い方詳細 】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="640" height="400" src="https://depfields.com/wp-content/uploads/2020/06/smart-home-3396205_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/06/smart-home-3396205_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/06/smart-home-3396205_640-300x188.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>


<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">STM32マイコンの汎用入出力GPIOの使い方を詳細に解説しています。ペリフェラルの中で最も基本で使用頻度の高いGPIOを使いこなせるようになることはプログラミングだけでなく<strong><a href="https://depfields.com/mc-circuit/" target="_blank" rel="noreferrer noopener">インターフェースを構成している電子回路</a></strong>の理解も必要なため、STM32マイコン操作の勘所を理解することでもあります。</p>







<h2 class="wp-block-heading">汎用入出力GPIOとは</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">汎用入出力</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIO(G</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">enaral</span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"> P</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">urpose</span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"> I</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">nput/</span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">O</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">utput)</span>ともいい、ソフトウェアで任意に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入出力を制御できるポート（ピン）</span></strong>です。ピンに入力された信号を情報としてCPUに取り込んだり、マイコン内のCPUから端子に信号を出力したりします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>STM32マイコンのGPIO回路構成を下に示します。STM32マイコンではペリフェラルライブラリで指定のピンの仕様を入力にしたり出力にしたりできます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>入力の場合は、入力ドライバ部の回路が使われて<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルアップ入力</span>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルダウン入力</span>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フローティング入力</span></strong>そして<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アナログ入力</span></strong>の4種類を使用する機能に合わせて指定します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プルアップ、プルダウン入力</span></strong>が指定されると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">それぞれ指定のプルアップかプルダウン抵抗がON</span></strong>し、シュミットトリガ回路を通して入力データレジスタへ情報として渡されます。シュミットトリガ回路は入力されたデジタル信号の波形を整形するものです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>デジタル電圧信号を入力</strong></span>とする場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フローティング入力を指定</span></strong>します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">このときプルアップ・プルダウン抵抗はOFF</span></strong>となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アナログ信号を入力</span></strong>とする場合、信号はシュミット回路を介さずに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">直接ADコンバータ回路へ送られます</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-circuit.jpg" alt="" class="wp-image-2108" width="506" height="385" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-circuit.jpg 625w, https://depfields.com/wp-content/uploads/2020/06/gpio-circuit-300x228.jpg 300w" sizes="(max-width: 506px) 100vw, 506px" /><figcaption>STM32マイコンのGPIO回路構成</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>出力の場合には汎用出力の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プッシュプル</span>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンドレイン</span>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネート機能出力のプッシュプル</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンドレイン</span></strong>の4種類を使用する機能に合わせて指定します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">汎用プッシュプル出力</span></strong>が指定されると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力がONのとき</span></strong>に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力ピンはHレベル電圧</span></strong>が、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">OFFのとき</span></strong>に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力ピンはLレベル電圧</span></strong>が出力されます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>オープンドレイン出力</strong></span>を指定すると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力回路のN-MOSだけが機能</span></strong>します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力をONにしたとき</span></strong>N-MOSがOFFになるので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力ピンはHレベル電圧でもLレベル電圧でもない浮いた不定の状態</span></strong>となります。<strong>出力がOFFしたとき</strong>はN-MOSがONとなるため<strong>出力ピンはLレベル電圧</strong>となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>指定対象のポートが汎用でなく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ペリフェラル機能の出力である場合はオルタネート機能の出力を指定</span></strong>します。これにもプッシュプルとオープンドレインの2種類をペリフェラルに合わせて指定します。</p>
</div></div></div>



<h2 class="wp-block-heading">GPIOペリフェラルの使い方</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>それでは実際にGPIOペリフェラルライブラリを活用して設定する方法を解説していきましょう。GPIOのペリフェラルライブラリは下図の手順で設定します。</p>
</div></div></div>



<h3 class="wp-block-heading">ポートA pin1をプッシュプル出力に設定</h3>



<figure class="wp-block-image size-large"><img decoding="async" width="577" height="201" src="https://depfields.com/wp-content/uploads/2020/06/gpio-setting.jpg" alt="" class="wp-image-2531" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-setting.jpg 577w, https://depfields.com/wp-content/uploads/2020/06/gpio-setting-300x105.jpg 300w" sizes="(max-width: 577px) 100vw, 577px" /><figcaption>GPIO設定手順</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;①　GPIOAにクロック供給　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まず<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">使用するGPIOにクロックを供給</span></strong>します。ペリフェラルにより<strong>APB1バス</strong>と<strong>APB2バス</strong>のどちらかに接続しているかを確認し選択します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">クロック供給関数RCC_APBxPeriphClockCmd()</span></strong>の第1引数で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">APBxバスに接続するペリフェラル</span></strong>を指定、第2引数が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ENABLE</span></strong>で供給開始、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">DISABLE</span></strong>で供給停止となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">引数</span></strong>というのは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">関数の中で使用する設定パラメータ</span></strong>で複数ある場合は順次、第1引数、第2引数…となります。GPIOのAポートの場合はAPB2バスに接続していますので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">RCC_APB2PeriphClockCmd関数</span></strong>を指定して<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>クロックを供給</strong></span>し機能をONします。</p>
</div></div></div>



<p>設定例： <br>　RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIA, <strong>ENABLE</strong>);</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>下表のクロック供給関数へのマクロはstm32f10x_rcc.h内で定義されているものです。</p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="650" height="546" src="https://depfields.com/wp-content/uploads/2020/06/rcc-apbx-macro.jpg" alt="" class="wp-image-2121" srcset="https://depfields.com/wp-content/uploads/2020/06/rcc-apbx-macro.jpg 650w, https://depfields.com/wp-content/uploads/2020/06/rcc-apbx-macro-300x252.jpg 300w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>クロック供給関数へのマクロ</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;②　GPIOAの初期化　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>次に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIOAの初期化を行います</span>(GPIO_Init関数を使用)</strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>使用するペリフェラルのライブラリが記述された関数をつかってパラメータを設定し、初期化します。GPIOの場合はstm32f10x_gpio.c に制御レジスタに設定するマクロ関数が記述されており、その中で使用される変数、構造体類をstm32f10x_gpio.hに定義しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>GPIOAの初期化は<strong>GPIO_Init関数</strong>を使用します。</p>
</div></div></div>



<p>設定例： 　GPIO_Init(<strong>GPIA,</strong> <strong>＆GPIO_InitStructure</strong>);</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>関数の第1引数は<strong>設定対象のGPIOポートを指定</strong>します。マイコンにより使用できるポートは限定されます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-parameter2.jpg" alt="" class="wp-image-2129" width="225" height="209"/><figcaption>GPIOポート</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>第2引数の<strong>GPIO_InitStructure</strong>は設定パラメータをグループ化した<strong>構造体変数</strong>と呼ばれるものでヘッダファイルstm32f10x_gpio.h内で定義されています。使用するまえに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIO_InitTypeDef GPIO_InitStructure</span></strong>；と宣言しておきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong>構造体変数</strong>の<strong>GPIO_InitStructure</strong>には関数内の設定パラメータをメンバとして含み、使用する<strong>ピン</strong>、<strong>入出力</strong>の仕様、出力の場合は<strong>最大スイッチング速度</strong>を指定します。パラメータ詳細を下表に示します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-parameter1.jpg" alt="" class="wp-image-2128" width="600" height="465" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-parameter1.jpg 637w, https://depfields.com/wp-content/uploads/2020/06/gpio-parameter1-300x233.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption>GPIO設定パラメータ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>出力に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネート機能</span></strong>というものがありますが、これはピンが単なるGPIO入出力でなくタイマやUARTなどの<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>ペリフェラル（周辺機能）の出力</strong></span>となる場合です。ペリフェラルにより指定すべき出力仕様がありますので各ペリフェラルで解説します。</p>
</div></div></div>



<p>設定例： GPIOA_1　プッシュプル出力　最大スイッチング周波数2MHz<br>　GPIO_InitTypeDef GPIO_InitStructure；//構造体変数宣言<br>　GPIO_InitStructure.GPIO_Pin&nbsp; = <strong>GPIO_Pin_1</strong>;//（0x0001）<br>　GPIO_InitStructure.GPIO_Mode&nbsp; = <strong>GPIO_Mode_Out_PP</strong>;//（0x10）<br>　GPIO_InitStructure.GPIO_Speed&nbsp; = <strong>GPIO_Speed_2MHz</strong>;// （0x02）</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpioa-output.jpg" alt="" class="wp-image-2124" width="487" height="220" srcset="https://depfields.com/wp-content/uploads/2020/06/gpioa-output.jpg 511w, https://depfields.com/wp-content/uploads/2020/06/gpioa-output-300x136.jpg 300w" sizes="(max-width: 487px) 100vw, 487px" /><figcaption>GPIOA_1 プッシュプル出力　最大スイッチング周波数2MHz</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>設定パラメータを指定したら初期化関数<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIO_Init()を実行</span></strong>します。各ポート（AからGポート）で対象のポートを指定します。これ以後、初期化したポートはプログラム内で任意に使用できるようになります。</p>
</div></div></div>



<h2 class="wp-block-heading">GPIOのオルタネート機能・リマップ</h2>



<div class="wp-block-vk-blocks-spacer vk_spacer"><div class="vk_spacer-display-pc" style="height:20px"></div><div class="vk_spacer-display-tablet" style="height:10px"></div><div class="vk_spacer-display-mobile" style="height:5px"></div></div>



<h3 class="wp-block-heading">オルタネート機能</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまではマイコンのポートをGPIOで使用することを前提にすすめてきましたが、初期化作業はポートをGPIO以外のペリフェラル（周辺機能）で使用する際にも必要です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>STM32ではどのポートがどの周辺機能に使用できるかはあらかじめ決まっています。GPIO以外の用途への入出力のためにSTM32の各ポートを使用できる機能のことを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネート機能</span></strong>とよんでいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ポートを使用した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外部割込み</span></strong>も<strong>オルタネート機能に含まれます</strong>。オルタネート機能でペリフェラルのためにポートを出力として使用するときは入出力仕様項目の<strong>GPIO_Mode_AF_PP</strong>(オルタネート機能プッシュプル)か<strong>GPIO_ModeにGPIO_Mode_AF_OD</strong>(オルタネート機能オープンドレイン)を設定します。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>オルタネート機能を使用する場合はクロックを供給してオルタネート機能をONする必要があります。</p>
</div>
<p>&nbsp;</p>



<p>設定例： オルタネート機能を使用する場合<br>　RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, <strong>ENABLE</strong>);</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h3 class="wp-block-heading">リマップ（再配置）</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リマップとは</span></strong>STM32にデフォルトとしてもともと割り当てられているオルタネート機能とは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">別の機能を利用する</span></strong>ためのものです。どのような場合に使用する機能なのかを解説していきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンを活用するにあたって、比較的単機能な場合はポートをGPIOやペリフェラルを使うにしても標準的なデフォルトのオルタネート機能でことは足りるためリマップは必要ないかもしれません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>システムが複雑で多機能になってくると一つのマイコンで<strong>複数のペリフェラル（タイマ、UART通信など）を同時に使う</strong>ようになります。マイコンのピン数は限られているので機能が増えるほどを思い通りに同時に使うことはできなくなってきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>このようなときに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リマップ機能</span></strong>があれば使用したい<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">必要な機能を別のピンにリマップ（再配置）させることができる</span></strong>のでより効率よくマイコンの機能を活用できるようになります。ただし、マイコンにより<strong>リマップできる箇所は限られています</strong>ので仕様書のピン定義表でよく確認することが大切です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-pins.jpg" alt="" class="wp-image-2132" width="519" height="612" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-pins.jpg 531w, https://depfields.com/wp-content/uploads/2020/06/gpio-pins-254x300.jpg 254w" sizes="(max-width: 519px) 100vw, 519px" /><figcaption>ピン定義表</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong>ポートPC10</strong>をピン定義表でみると<strong>オルタネート機能</strong>はデフォルトでは<strong>UART4_TX</strong>か<strong>SDIO_D2</strong>が割り当てられています。したがって、UART4かSDIOのどちらか使用するペリフェラルにクロックを供給すると供給された側のペリフェラルがONして機能します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>言い換えるとそのままではUART4かSDIOしか使用できません。でも、このピンには<strong>リマップ</strong>に<strong>UART3_Tx</strong>が割り当てられています。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リマップをするとこのピンでUART3_TXが使用できる</span></strong>ようになるのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リマップが必要となるのは例えば以下のようなケースです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シリアル通信のUART3を使用したいが、オルタネート機能としてのデフォルトUART3のPB10付近のピンはすでに他の用途で使用しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そこで、リマップでUART3が使えるピンを探してみるとPC10付近に割り当てられています。この付近のピンが空いていればリマップ機能を設定することでUART3が使用できるようになるのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リマップは下図の手順で設定します。<br>ペリフェラル<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">UART3のTXとRXをそれぞれPC10とPC11に割り当てるためのリマップ</span></strong>する例で解説します。</p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="588" height="506" src="https://depfields.com/wp-content/uploads/2020/06/remap.jpg" alt="" class="wp-image-2546" srcset="https://depfields.com/wp-content/uploads/2020/06/remap.jpg 588w, https://depfields.com/wp-content/uploads/2020/06/remap-300x258.jpg 300w" sizes="(max-width: 588px) 100vw, 588px" /><figcaption>リマップ手順</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;①　GPIOの構造体変数宣言</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIOの構造体変数宣言</span></strong>は一度実行すればよいのではじめにしておきます。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;②　GPIOCにクロック供給　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ポートPC10とPC11を使用するために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ポートCにクロックを供給</span></strong>します。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;③　オルタネート機能にクロック供給　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ペリフェラル<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">UART3</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">リマップ機能</span></strong>を使用するために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネート機能にクロックを供給</span></strong>します。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;④　ピンPC10をUART3_TX用に設定</span><span style="background-color: #003300; color: #ffffff;">　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PC10のUART3_TXはプッシュプル出力タイプですがペリフェラルの出力ですので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オルタネートプッシュプル出力</span></strong>に設定します。スイッチング速度は設定通信スピード（ボーレート）より速いものに設定しておきます。設定後GPIO_Init関数を実行してオルタネートプッシュプル出力として初期化します。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;⑤　ピンPC11をUART3_RX用に設定　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PC11のUART3_RXは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デジタル電圧入力のフローティング</span></strong>に設定します。設定後GPIO_Init関数を実行してフローティング入力として初期化します。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;⑥　リマップ実行　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>各ピンの初期化後、リマップを実行します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong>リマップ実行はGPIO_PinRemapConfig関数を実行</strong>することで行います。関数の第1引数でリマップの対象となるペリフェラルを指定します。前述しましたがリマップは任意の箇所でできるのではなくあらかじめ割り当てられています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リマップには<strong>部分リマップ</strong>という機能の一部だけがリマップされたものと<strong>フルリマップ</strong>なる機能全てがリマップされるものがあります。</p>
</div></div></div>



<p>設定例： <br>　GPIO_PinRemapConfig (GPIO_PartialRemap_USART3, <strong>ENABLE</strong>);//部分リマップ</p>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;⑦　GPIOC再設定　</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リマップ関数を実行すると使用しないポートもオルタネート機能に含めてしまう場合があります。上記設定の例ではリマップ後に使用したいのはUART3のPC10（UART3_TX）とPC11（UART3_RX）の2ポートだけです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リマップ機能によりオルタネート機能に含まれたPC12をGPIOやデフォルトのオルタネート機能(UART5_TX)として使用したい場合は元の機能になる設定をすればよいです。上記の例では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PC12を汎用入力に再設定</span></strong>しています。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>以上がリマップ機能を実行する作業手順です。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">リマップ機能は限られたピン数のマイコンの機能をより効率よく利用することができる有効な機能</span></strong>です。ある程度多機能なシステムを設計する場合にはリマップ機能を使うと柔軟にピン配置を構成できるので大変便利です。</p>
</div>
<p>&nbsp;</p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>リマップ機能の割当を対応した表にまとめていますので、仕様書のピン定義表とともに確認しながら設定してください。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer"><div class="vk_spacer-display-pc" style="height:20px"></div><div class="vk_spacer-display-tablet" style="height:10px"></div><div class="vk_spacer-display-mobile" style="height:5px"></div></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/tabel-remap1.jpg" alt="" class="wp-image-13548" width="599" height="657"/><figcaption>リマップ対応表1</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/tabel-remap2.jpg" alt="" class="wp-image-2148" width="605" height="624" srcset="https://depfields.com/wp-content/uploads/2020/06/tabel-remap2.jpg 602w, https://depfields.com/wp-content/uploads/2020/06/tabel-remap2-291x300.jpg 291w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption>リマップ対応表2</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/tabel-remap3.jpg" alt="" class="wp-image-2149" width="600" height="646" srcset="https://depfields.com/wp-content/uploads/2020/06/tabel-remap3.jpg 607w, https://depfields.com/wp-content/uploads/2020/06/tabel-remap3-278x300.jpg 278w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption>リマップ対応表3</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/tabel-remap4.jpg" alt="" class="wp-image-2151" width="607" height="633"/><figcaption>リマップ対応表4</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/gpio/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/e7e28980de9c3c899f2fbc62ccfc83f7892d7866b512a8e11b183b589e82ed91.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">General Purpose I/O GPIO[usage details of STM32] | Most Powerful Bible to Bec...</div></div><div class="lkc-url">https://en.depfields.com/gpio/</div><div class="lkc-excerpt">In this section I explains in detail how to use the general-purpose input/output GPIOs of the STM32 MCU. To be able to use GPIO, the most basic and frequently used of the peripherals, requires not only programming but also an understandi</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/gpio/">汎用入出力【STM32のGPIO使い方詳細 】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
