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

<image>
	<url>https://depfields.com/wp-content/uploads/2020/07/cropped-favicon-1-32x32.png</url>
	<title>STM32 | 即戦力モノづくり!エンジニアへの道標</title>
	<link>https://depfields.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>実践で使えるARMマイコン入門【初心者必見】</title>
		<link>https://depfields.com/learning/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=learning</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 06 May 2020 12:30:24 +0000</pubDate>
				<category><![CDATA[ARMマイコン入門]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=4502</guid>

					<description><![CDATA[<p>実践で使えるARMマイコン入門へようこそ このサイトを訪れた人はマイコンに興味があってこれからマイコンについて下記のようにどう勉強すればよいか迷っているひともいると思われます。 でも、心配は無用です。実務での経験から得た [&#8230;]</p>
<p>The post <a href="https://depfields.com/learning/">実践で使えるARMマイコン入門【初心者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img fetchpriority="high" width="1024" height="576" src="https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920-1024x576.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920-1024x576.jpg 1024w, https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920-300x169.jpg 300w, https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920-768x432.jpg 768w, https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920-1536x864.jpg 1536w, https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920-320x180.jpg 320w, https://depfields.com/wp-content/uploads/2020/07/tech-4915540_1920.jpg 780w" sizes="(max-width: 1024px) 100vw, 1024px" /></div>




<h2 class="wp-block-heading">実践で使えるARMマイコン入門へようこそ</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>めかのとろ</strong>です。<br>この「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実践で使えるARMマイコン入門</span></strong>」ではいろいろな種類のマイコンのなかでも特に組み込み開発の実践で使用される<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARMマイコン（STM32）</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>することをコンセプトとしています。</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>です。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">このサイトを訪れた人はマイコンに興味があってこれからマイコンについて下記のようにどう勉強すればよいか迷っているひともいると思われます。</p>



<ul>
<li>マイコンには興味があるが勉強は具体的になにからはじめたらよいかわからない</li>



<li>マイコン操作とプログラミングがどうかかわっているのかわからない</li>



<li>マイコンについては何となく知ってはいるが、種類が多すぎて選択できない</li>



<li>周辺回路に使われるデジタル論理回路やアナログ回路とやらがさっぱりわからない</li>



<li>組み込み技術を解説している用語がわからない</li>



<li>どんなツールを使用すればいいのかわからない</li>



<li>マイコン操作ができるようになった後にシステム設計についてはどうすればよいのかわからない</li>
</ul>



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



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">でも、心配は無用です。実務での経験から得たマイコンを使った組み込み技術を効率よく伝授できるノウハウとしてまとめた、このサイトの「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://depfields.com/guidance/" target="_blank" rel="noreferrer noopener" title="ARMマイコンをつかった組み込み技術習得のスキルアップ学習カリキュラム">組み込みスキルアップ学習カリキュラムガイダンス</a></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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンとひとことでいっても世の中にはさまざまな種類が存在します。電子工作で人気のMicrochip社のPIC、Atmel社のAVR（現在はMicrochip社）、日立製８ビットマイコンのH8、ルネサス製SHファミリシリーズ、RHファミリシリーズ、そしてARMなどがあります。8ビット、16ビットそして32ビットのマイコンがありますが使用用途により選択します。</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped aligncenter wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="219" height="187" data-id="4548" src="https://depfields.com/wp-content/uploads/2020/07/arm.jpg" alt="" class="wp-image-4548"/><figcaption class="wp-element-caption">ARM STM32</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="243" height="195" data-id="4549" src="https://depfields.com/wp-content/uploads/2020/07/avr_16.jpg" alt="" class="wp-image-4549"/><figcaption class="wp-element-caption">AVR</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="230" height="189" data-id="4550" src="https://depfields.com/wp-content/uploads/2020/07/pic_16.jpg" alt="" class="wp-image-4550"/><figcaption class="wp-element-caption">PIC</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="332" height="260" data-id="4551" src="https://depfields.com/wp-content/uploads/2020/07/sh.jpg" alt="" class="wp-image-4551" srcset="https://depfields.com/wp-content/uploads/2020/07/sh.jpg 332w, https://depfields.com/wp-content/uploads/2020/07/sh-300x235.jpg 300w" sizes="(max-width: 332px) 100vw, 332px" /><figcaption class="wp-element-caption">SH</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">さまざまなマイコン</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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンを搭載したボードではArduino(アルドゥイーノ)やRaspberry Pi(ラズベリーパイ)が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコン初心者向けの電子工作用ボード</span></strong>で人気です。Raspberry PiのボードとなるとLinux等汎用OSを搭載したものもありマイコンというより小型のPCといった性能に近いものです。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped aligncenter wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="392" height="295" data-id="4538" src="https://depfields.com/wp-content/uploads/2020/07/stm32.jpg" alt="" class="wp-image-4538" srcset="https://depfields.com/wp-content/uploads/2020/07/stm32.jpg 392w, https://depfields.com/wp-content/uploads/2020/07/stm32-300x226.jpg 300w" sizes="(max-width: 392px) 100vw, 392px" /><figcaption class="wp-element-caption">STM32ボード</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="417" height="266" data-id="4537" src="https://depfields.com/wp-content/uploads/2020/07/raspberypi.jpg" alt="" class="wp-image-4537" srcset="https://depfields.com/wp-content/uploads/2020/07/raspberypi.jpg 417w, https://depfields.com/wp-content/uploads/2020/07/raspberypi-300x191.jpg 300w" sizes="(max-width: 417px) 100vw, 417px" /><figcaption class="wp-element-caption">Raspberry Pi</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="406" height="314" data-id="4536" src="https://depfields.com/wp-content/uploads/2020/07/arduino.jpg" alt="" class="wp-image-4536" srcset="https://depfields.com/wp-content/uploads/2020/07/arduino.jpg 406w, https://depfields.com/wp-content/uploads/2020/07/arduino-300x232.jpg 300w" sizes="(max-width: 406px) 100vw, 406px" /><figcaption class="wp-element-caption">Arduino</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">市販のマイコンボード</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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">この「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実践で使えるARMマイコン入門</span></strong>」では数多く種類のあるマイコンのうちで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARMコアをもつSTM32マイコン</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><a href="https://depfields.com/board/" target="_blank" rel="noreferrer noopener" title="ARMで電子工作しながら学習するのにお勧めNucleo開発ボード">ARMで電子工作しながら学習するのにお勧めNucleo開発ボード</a></strong>」  として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32(Cortex-M3)搭載のNucleo-F103RB</span></strong>を使用していてサンプルプログラムを使って動作を確認しながらスキルを身につけていけるようになっています。 </p>



<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>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/selection" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.27</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/マイコン3-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンの選択【電子工作用途でもARM(STM32)を選ぶべき理由】</div></div><div class="lkc-url">https://depfields.com/selection</div><div class="lkc-excerpt">さまざまな種類のマイコンめかのとろマイコンといっても8ビットでDIPタイプ（多数の金属製接続端子が下方へ伸びたタイプ）や32ビットの表面実装タイプなど性能、価格がさまざまな種類のものが数多くのメーカーから発売されています。めかのとろこの中からどれを選ぶかは簡単な答えはないのですが、自分の目指している方向性に適しているマイコンを選択するのも一つの方法です。比較的単純なマイコン電子工作だけをしたいのならば8ビットのマイコンで十分で、シリアル通信や産業用モータドライブ、さらには将来的にIoTに発展させたい場...</div></div><div class="clear"></div></div></a></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>





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



<h3 class="wp-block-heading"><a href="https://depfields.com/embedded/" target="_blank" rel="noreferrer noopener" title="ARM(STM32)の基礎と開発入門【ARM初心者の効果的な勉強方法】">組み込みマイコン技術入門編</a></h3>



<div class="wp-block-columns is-layout-flex wp-container-7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><a href="https://depfields.com/embedded/"><img decoding="async" width="409" height="291" src="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg" alt="" class="wp-image-5045" srcset="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 409px) 100vw, 409px" /></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p> 当サイトでは教材となるマイコンにARMコアを搭載したSTマイクロエレクトロニクス社のSTM32F1xxシリーズ（Cortex-M3)をベースに解説を行っています。このマイコンを使いこなす上で必須な電子回路を含んだ周辺回路技術、マイコンの知識、マイコンの機能そしてマイコンを使用した組み込みシステム設計の解説を行っています。 </p>



<p> ここで得たスキルは実践で役に立つものばかりです。 </p>
</div>
</div>



<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="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h3 class="wp-block-heading vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><a href="https://depfields.com/applications/" target="_blank" rel="noreferrer noopener" title="マイコンプログラム例と実践【ARMの電子工作にも役に立つサンプル例】">サンプルプログラム編</a></h3>



<div class="wp-block-columns is-layout-flex wp-container-10 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><a href="https://depfields.com/applications/"><img decoding="async" width="1024" height="683" src="https://depfields.com/wp-content/uploads/2020/05/industry-2738405_1920-1024x683.jpg" alt="" class="wp-image-6373" srcset="https://depfields.com/wp-content/uploads/2020/05/industry-2738405_1920-1024x683.jpg 1024w, https://depfields.com/wp-content/uploads/2020/05/industry-2738405_1920-300x200.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/industry-2738405_1920-768x512.jpg 768w, https://depfields.com/wp-content/uploads/2020/05/industry-2738405_1920-1536x1024.jpg 1536w, https://depfields.com/wp-content/uploads/2020/05/industry-2738405_1920.jpg 780w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>組み込みマイコン技術入門編で解説した内容を実際に実行して確認するために、本サイトで使用する教材ボードに合わせたプログラムを載せています。</p>



<p>実際に回路を組んで、プログラムを実行させていくことでマイコンのスキルを自然に身に着けていくことができます。</p>
</div>
</div>



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



<h2 class="wp-block-heading"><a href="https://depfields.com/controltheory/" target="_blank" rel="noopener" title="">マイコンを使った実践フィードバック入門</a></h2>



<div class="wp-block-columns is-layout-flex wp-container-13 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="640" height="435" src="https://depfields.com/wp-content/uploads/2021/03/lego-4504048_640.jpg" alt="" class="wp-image-8870" srcset="https://depfields.com/wp-content/uploads/2021/03/lego-4504048_640.jpg 640w, https://depfields.com/wp-content/uploads/2021/03/lego-4504048_640-300x204.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>フィードバック制御理論を組み込みマイコン技術で実現するための解説です。</p>



<p>抽象的でつかみどころがないような制御理論を具体的な例で解説し、実際のモーションコントロールに適用して有用性を確認しています。</p>



<p>制御理論を自由自在に適用できるようになるとアプリケーションの可能性が広がりライバルに差をつけるノウハウを身に着けることになります。</p>
</div>
</div>



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



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">当サイトで紹介しているマイコン開発環境用ツールはフリーで提供しております。<br>ダウンロードするためにはお問い合わせフォームで登録してパスワードを取得してください。</p>



<div class="wp-block-button"><a class="wp-block-button__link has-very-light-gray-color has-vivid-red-background-color has-text-color has-background wp-element-button" href="https://depfields.com/contact/"><strong>お問い合わせはこちら</strong></a></div>





<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/nucleo" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">4 Pockets</div></div><div class="lkc-date">2020.05.06</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/07/nureo-f103rb-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ</div></div><div class="lkc-url">https://depfields.com/nucleo</div><div class="lkc-excerpt">現役エンジニア社長のめかのとろです。組み込みエンジニアをめざしているひとにとって、本格的に勉強を始めるためにどんなものを教材にすれば効率よく短期間で本当につかえるスキルが身につくのかを検討しておすすめでとっておきの方法を紹介します。ここでは電子工作において巷で大流行のArduinoとARMのオープンソース開発環境であるMbed、そして今回の紹介するNucleoマイコンボードを使いこなすために開発環境STM32CubeIDEをカスタマイズしたものとの比較をしていきます。ArduinoについてArduino センサーシールドArduinoめかのとろA...</div></div><div class="clear"></div></div></a></div></div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/learning/" 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/3651a811c7ae65d2cb0ca88b5f55d597c49e4def22675b9a9576782c4230a654.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Tutorial of ARM MCU | Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-url">https://en.depfields.com/learning/</div><div class="lkc-excerpt">Tutorial to ARM MCU for practical UseI am Mekanatoro, an active engineer managing director who runs this site.In this &quot;Tutorial to ARM Microcontrollers for Practical Use,&quot;  I explain how to use ARM microcon</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/learning/">実践で使えるARMマイコン入門【初心者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ</title>
		<link>https://depfields.com/nucleo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nucleo</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 06 May 2020 13:57:38 +0000</pubDate>
				<category><![CDATA[組み込みマイコンスキル全般]]></category>
		<category><![CDATA[STM32]]></category>
		<category><![CDATA[Nucleo]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=5189</guid>

					<description><![CDATA[<p>現役エンジニア社長のめかのとろです。組み込みエンジニアをめざしているひとにとって、本格的に勉強を始めるためにどんなものを教材にすれば効率よく短期間で本当につかえるスキルが身につくのかを検討しておすすめでとっておきの方法を [&#8230;]</p>
<p>The post <a href="https://depfields.com/nucleo/">マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="409" height="291" src="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 409px) 100vw, 409px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">現役エンジニア社長のめかのとろです。<br>組み込みエンジニアをめざしているひとにとって、本格的に勉強を始めるためにどんなものを教材にすれば<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">効率よく短期間で本当につかえるスキルが身につくのか</span></strong>を検討しておすすめでとっておきの方法を紹介します。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ここでは電子工作において巷で大流行の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Arduino</span></strong>とARMのオープンソース開発環境である<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>Mbed</strong></span>、そして今回の紹介する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://depfields.com/board/" target="_blank" rel="noreferrer noopener" title="ARMで電子工作しながら学習するのにお勧めNucleo開発ボード">Nucleoマイコンボード</a>を使いこなすために<a href="https://depfields.com/environment/" target="_blank" rel="noreferrer noopener" title="ARMマイコンSTM32の学習におすすめの開発環境【初心者必見】"><strong>開発環境</strong>STM32CubeIDE</a>をカスタマイズしたもの</span></strong>との比較をしていきます。</p>









<h2 class="wp-block-heading">Arduinoについて</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-14 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image"><img decoding="async" width="335" height="268" data-id="5222" src="https://depfields.com/wp-content/uploads/2020/08/arduino.jpg" alt="" class="wp-image-5222" srcset="https://depfields.com/wp-content/uploads/2020/08/arduino.jpg 335w, https://depfields.com/wp-content/uploads/2020/08/arduino-300x240.jpg 300w" sizes="(max-width: 335px) 100vw, 335px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="370" height="285" data-id="5221" src="https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2.jpg" alt="" class="wp-image-5221" srcset="https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2.jpg 370w, https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2-300x231.jpg 300w" sizes="(max-width: 370px) 100vw, 370px" /><figcaption class="wp-element-caption">Arduino センサーシールド</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" width="417" height="341" data-id="5208" src="https://depfields.com/wp-content/uploads/2020/08/arduino-board.jpg" alt="" class="wp-image-5208" srcset="https://depfields.com/wp-content/uploads/2020/08/arduino-board.jpg 417w, https://depfields.com/wp-content/uploads/2020/08/arduino-board-300x245.jpg 300w" sizes="(max-width: 417px) 100vw, 417px" /><figcaption class="wp-element-caption">Arduino</figcaption></figure>
</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>Arduinoの詳細に関しましては割愛しますが、いわずと知れた電子工作では巷で大流行のマイコン搭載システムです。ホビー向け用途の電子工作に最適でインターネット、書籍などの情報も豊富ですので初心者にとっては<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>利点は、工学の専門的な知識がなくても気軽にマイコンを使ったプログラミングで電子工作ができることです。レゴ®社のMindstorms®といったプログラミング商材がありますが、ちょっと遊び心があるところなど基本的なコンセプトは類似しています。プログラミングはC言語に似た専用のArduino言語によります。</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>似たような商材にRaspberry Piシリーズがありますが、これは電子工作用というよりOSも搭載した通信機能の充実したむしろ小型のPCであるためここでは取り上げません。</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>Arduinoでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンとハードウェアのインターフェース部分は隠蔽されてカプセル化されている</span></strong>ため、ユーザーはハードウェアをあまり意識しなくてもシステムができてしまいます。つまり、レゴMindstormsのように<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>させていく感じです。視覚的なブロック等を組み合わせて小学生でもプログラミングできるのに対して、Arduinoは専用のプログラミング言語を使うところが違いますが、基本的に同じようなものです。</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>Arduinoは気軽にホビー感覚で始めるのに向いていてセンサーなどの周辺機器や情報が充実しているため、ちょっとしたアイディアで工作するには最適です。ただ、マイコンの仕様を知らなくてもプログラミングができてしまう反面、<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-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>Arduinoでいろいろなアプリを作成できるようになっても、それが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">自分で根本から作り上げたものでないかぎり、組み込みというものをわかったことにはならないし、実践では使えません</span></strong>。<br>例えば、シリアル通信一つとっても、Aruduinoはできあいの関数一つで簡単にPCと通信できてしまいます。つまり、<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-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">Arduinoはホビー用途の電子工作向け</span></strong>で組み込みエンジニアを目指すひとがArduinoを使えるようになっても<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>



<h2 class="wp-block-heading">Mbedについて</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-16 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image"><img decoding="async" width="181" height="176" data-id="5223" src="https://depfields.com/wp-content/uploads/2020/08/mbed-logo.jpg" alt="" class="wp-image-5223"/></figure>



<figure class="wp-block-image"><img decoding="async" width="370" height="285" data-id="5221" src="https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2.jpg" alt="" class="wp-image-5221" srcset="https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2.jpg 370w, https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2-300x231.jpg 300w" sizes="(max-width: 370px) 100vw, 370px" /><figcaption class="wp-element-caption">Arduino センサシールド</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" width="409" height="291" data-id="5045" src="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg" alt="" class="wp-image-5045" srcset="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 409px) 100vw, 409px" /><figcaption class="wp-element-caption">Nucleo Mbed対応ボード</figcaption></figure>
</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">Mbedではじめる電子工作入門</span></strong>」の類をよく目にするのですが、MbedはARM社がメーカーの垣根をこえたオープンな開発環境を提唱しているものであって、ARMマイコンに慣れたプロの開発者、企画者に適していて、電子工作用途ではArduinoでは物足らず<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARMマイコンでとくにIoTアプリを手掛けたい人</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">Mbedはさまざまな種類のマイコン開発の試作などを容易で有利にすすめるプロ向け</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>このシステムの開発環境はクラウド上にあるため、どの端末からもUSBケーブルがあれば転送までできるのが特徴です。ARMマイコンをメーカーの垣根を超えて汎用的に使用できるのが最大の特徴ですが、そのためにも<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Arduinoのようにハードウェア部分のインターフェースは抽象的なものに隠蔽されていて</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>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/08/cloud.jpg" alt="" class="wp-image-5210" width="404" height="214" srcset="https://depfields.com/wp-content/uploads/2020/08/cloud.jpg 472w, https://depfields.com/wp-content/uploads/2020/08/cloud-300x159.jpg 300w" sizes="(max-width: 404px) 100vw, 404px" /><figcaption class="wp-element-caption">Mbedのクラウド環境開発とIoT</figcaption></figure>



<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>Mbedシステムはハードウェアの知識とマイコン開発の経験があるプロフェッショナルのエンジニアが開発期間短縮などで使用するのには強力なツールであると思います。</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>各マイコンの仕様を新規開発の度に確認しながらものにするのにかかる時間をメーカーの垣根をこえたMbedシステムで開発期間を短縮させて肝心のアプリプログラミングに集中できるのは評価できます。しかし、Arduinoと同じく、簡単に開発ができる反面もあります。</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>初心者に限った話ではありますがいきなり高性能のARMマイコンのハードウェア部分を抽象化した環境で開発するのですから、ホビーの電子工作に限っては使い勝手はよいと思いますが、組み込みエンジニアを目指す人がいきなりこの環境になれてしまうのは問題があって、そのうち壁にぶちあたりままならなくなるのは明らかです。</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-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">ハードウェアとマイコンとのインターフェース部分を抽象化して意識しないでもプログラミングできるMbedは組み込みマイコン学習には向いていません</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>大手メーカーなどで専門分野ごとに分業するなら中身を知らなくても成り立つかもしれませんが、副業やフリーランスなど独立して仕事をする場合はなおさらです。モノづくりをするのにハードウェアを知らずしてソフトウェアのプログラミングだけで実現しようとすることはありえない話で、初心者がいきなり利便性だけでMbedを採用するとそこを勘違いするのではという懸念があります。</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>もう一つ、Mbedを使うには対応した専用のボードが必要です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">裸のARMマイコンには使用できなく</span></strong>、どこまでいっても<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Mbed専用ボードでシステムの評価に使用するのが条件</span></strong>です。</p>
</div></div></div>



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



<h2 class="wp-block-heading">当サイトで提唱するマイコン開発環境STM32CubeIDE with SPL</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-18 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image"><img decoding="async" width="300" height="285" data-id="5224" src="https://depfields.com/wp-content/uploads/2020/08/nucleo.jpg" alt="" class="wp-image-5224"/></figure>



<figure class="wp-block-image"><img decoding="async" width="370" height="285" data-id="5221" src="https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2.jpg" alt="" class="wp-image-5221" srcset="https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2.jpg 370w, https://depfields.com/wp-content/uploads/2020/08/sensor-shield-2-300x231.jpg 300w" sizes="(max-width: 370px) 100vw, 370px" /><figcaption class="wp-element-caption">Arduinoセンサシールド</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" width="409" height="291" data-id="5045" src="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg" alt="" class="wp-image-5045" srcset="https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/07/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 409px) 100vw, 409px" /><figcaption class="wp-element-caption">Nucleo-F103RB</figcaption></figure>
</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">Arduinoでは実用的とはいえない</span></strong>し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Mbedは抽象的すぎて敷居が高い</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">総合開発環境STM32CubeIDEにSPLを組み込んだものです。SPL</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Standard Peripheral Library</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>で現在、新製品マイコンにも対応している<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">HALライブラリ</span></strong>に対するものです。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPL</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">SPL</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>これに対して、現在メーカーが推奨しているHALライブラリはSPLに似ていますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">かなり抽象化されている</span></strong>ため冗長な部分があってちょっと中身を調べようとするとわかりにくいです。ただし、SPLを使った学習である程度STM32マイコンに慣れてしまったあとでは、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">基本的に類似しているHALを扱うのは容易</span></strong>です。いきなり抽象的なものから学習するのではなく地に足のついた<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLで基礎を固めてから次に進むほうが後々つぶしが効く</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">HALはある程度基礎のあるベテランは積極的に採用すべきもの</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/08/recommend-system.jpg" alt="" class="wp-image-5213" width="543" height="573" srcset="https://depfields.com/wp-content/uploads/2020/08/recommend-system.jpg 504w, https://depfields.com/wp-content/uploads/2020/08/recommend-system-285x300.jpg 285w" sizes="(max-width: 543px) 100vw, 543px" /></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong>このマイコンと開発環境を使うメリット</strong></p>



<ol>
<li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARMコアSTM32マイコンの勉強が簡単に始められる</span></strong>。</li>



<li>教材ボードとして使うNucleo-F103RBは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">安価で容易に取得</span></strong>できる。</li>



<li>Nucleoボードは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://depfields.com/implement/" target="_blank" rel="noreferrer noopener" title="マイコンプログラム実装【ST-LINKを使ったプログラム転送】">プログラム転送用ツールのST-LINK</a>が含まれている</span></strong>のでUSBケーブルとPCがあれば使用できる。</li>



<li>教材に使用するボードは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Arduinoと互換性がある</span></strong>のでArduino用の資産が使えて電子工作でいろいろ発展させやすい。</li>



<li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">当サイトの学習用STM32CubeIDE with SPLにはOSとして<a href="https://depfields.com/freertos/" target="_blank" rel="noreferrer noopener" title="FreeRTOS【STM32学習向け】">FreeRTOS</a>も搭載</span></strong>していますので、かなり高度なアプリケーションの開発もできます。</li>



<li>マイコン開発環境は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">学習用にシンプルな構成</span></strong>としているので、簡単に構築でき、すぐに学習を始められる。</li>
</ol>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong>デリット</strong></p>



<ul>
<li>現在では日本語対応が完全ではない。他の環境で作成したアプリを使うと文字化けしてしまう。そのうち解決できると期待。</li>



<li>今のところ、STM32F1シリーズにしか対応していない。ただし、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">学習用ではこれで十分</span></strong>で、ある程度慣れたあとではSPLでもCortex-M4コアのF4シリーズに移植したり、さらにはHALドライバへ発展させることが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">容易にできる</span></strong>ので心配はいらない。</li>
</ul>



<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="wp-block-button"><a class="wp-block-button__link has-white-color has-vivid-red-background-color has-text-color has-background wp-element-button" href="https://depfields.com/environment/"><span style="color:#ffffff" class="tadv-color"><strong>当サイトで提唱する開発環境STM32CubeIDE with SPLの構成方法はこちら</strong></span></a></div>



<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="wp-block-button"><a class="wp-block-button__link has-white-color has-vivid-red-background-color has-text-color has-background wp-element-button" href="https://depfields.com/board"><span style="color:#ffffff" class="tadv-color"><strong>教材ボードNucleo-F103RBについてはこちら</strong></span></a></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></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>Arduino、Mbedでの開発環境に共通したものは<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>これはIoTが普及するようになり、アプリケーションに<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>。<br>従来のものにマイコンが付加され、最近ではそれにさらにIoTが付加されただけであって<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>むしろ、ソフトウェア（プログラミング）の部分は将来的にAIにとって代わられるかもしれません。</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>は今に始まったことではなくマイコン開発業界に限られず、いまではPC、スマホ、自動車等を使用するにあたっては中身を知らなくても簡単に扱えます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/testing-circuit-1468062_1920-1024x685.jpg" alt="" class="wp-image-441" width="402" height="269" srcset="https://depfields.com/wp-content/uploads/2020/05/testing-circuit-1468062_1920-1024x685.jpg 1024w, https://depfields.com/wp-content/uploads/2020/05/testing-circuit-1468062_1920-300x201.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/testing-circuit-1468062_1920-768x514.jpg 768w, https://depfields.com/wp-content/uploads/2020/05/testing-circuit-1468062_1920-1536x1028.jpg 1536w, https://depfields.com/wp-content/uploads/2020/05/testing-circuit-1468062_1920.jpg 780w" sizes="(max-width: 402px) 100vw, 402px" /></figure>



<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>です。</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">Arduino</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">Mbed</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>かArduinoと同じく<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-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">エンジニアもどき</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">ソフトウェアであるプログラミングは技術を活かす手段の一つ</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>電子工作で大人気のArduinoを筆頭にさまざまなマイコンの開発環境の中でも、当サイトでは学習に最適な<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">Nucleoボードを使用した開発システム</span></strong>の紹介をしています。<br><br>■　<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">開発環境がメーカー提供のフリーで制限がなくシンプルで手軽に始められる</span></strong>こと（<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">STM32CubeIDE with SPL + FreeRTOS</span></strong>)<br>■　<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">電子工作などアプリケーションを作成するのに多くのツール（Arduinoと互換）、情報が多い</span></strong>こと<br>■　<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ハードウェアとマイコン間のインターフェースを意識しながら学習する</span></strong>こと（最重要）<br>■　ArduinoやMbedシステムに比べて<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">汎用性が高いのでより実践力がつく</span></strong>こと<br><br>マイコンを使った組み込みを開始する上で、電子工作に徹したホビー用途だけなのか、マイコンをつかった組み込み製品の設計、開発もしたいのかにより扱うマイコン開発環境の選択肢もちがいます。将来性を考慮すると<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>



<p><br /><div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/nucleo/" 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/b00ea3bdaa95d95a98fdaf00c170d8b9ca465a201c7b9196ac3d7988d7fb8149.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Why recommend STM32 Nucleo instead of Arduino for beginners in microcontrolle...</div></div><div class="lkc-url">https://en.depfields.com/nucleo/</div><div class="lkc-excerpt">For those who are aiming to become embedded engineers, I will introduce the recommended and best way to start learning in earnest, considering what kind of educational materials will help you acquire truly useful skills efficiently and in</div></div><div class="clear"></div></div></a></div></div></p><p>The post <a href="https://depfields.com/nucleo/">マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARMマイコンSTM32レジスタマップの見方【上級者向け】</title>
		<link>https://depfields.com/register-map/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=register-map</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 03 Jun 2020 07:27:22 +0000</pubDate>
				<category><![CDATA[マイコン周辺機能（ペリフェラル）とは]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1980</guid>

					<description><![CDATA[<p>レジスタマップ 次にGPIO制御レジスタの内容を確認しますと、下記7種類の制御レジスタがあります(x=A…G)。 ポート設定レジスタ下位（GPIOx_CRL）ポート０から7 ポート設定レジスタ上位（GPIOx_CRH）ポ [&#8230;]</p>
<p>The post <a href="https://depfields.com/register-map/">ARMマイコンSTM32レジスタマップの見方【上級者向け】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="640" height="426" src="https://depfields.com/wp-content/uploads/2020/06/board-2440249_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/06/board-2440249_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/06/board-2440249_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></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>見方を変えると、ライブラリを使用しないでレジスタを操作できるようなレベルになると、各マイコンメーカーの提供するライブラリやツールに頼ることなしに開発ができるので最強です。</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>として仕組みを理解しなくてもマイコン開発は可能です。しかもレジスタの操作を理解することは入門者とくにプログラミングにあまり慣れていない人にはとても難解と思われるのでとばしてもらってもかまいません。</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>



<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_1ピン</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>ペリフェラルのメモリマップを示します。この中でGPIOポートAのメモリ上のベースアドレスは32bit表記の0x40010800です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/メモリマップ.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/メモリマップ.jpg" alt="" class="wp-image-2080" width="421" height="472" srcset="https://depfields.com/wp-content/uploads/2020/06/メモリマップ.jpg 430w, https://depfields.com/wp-content/uploads/2020/06/メモリマップ-268x300.jpg 268w" sizes="(max-width: 421px) 100vw, 421px" /></a><figcaption>メモリマップ</figcaption></figure>



<p>次にGPIO制御レジスタの内容を確認しますと、下記7種類の制御レジスタがあります(x=A…G)。</p>



<ul class="is-style-vk-numbered-circle-mark"><li>ポート設定レジスタ下位（GPIOx_CRL）<strong>ポート０から7</strong></li><li>ポート設定レジスタ上位（GPIOx_CRH）<strong>ポート8から15</strong>　</li><li>ポート入力データレジスタ（GPIOx_IDR）</li><li>ポート出力データレジスタ（GPIOx_ODR）</li><li>ポートビットセット/リセットレジスタ（GPIOx_BSRR）</li><li>ポートビットリセットレジスタ（GPIOx_BRR）</li><li>ポート設定ロックレジスタ（GPIOx_LCKR）</li></ul>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ポート仕様を設定するレジスタはGPIOA_1ピンの場合は下位（0 – 7）ですので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御レジスタGPIOA_CRLを操作して設定</span></strong>します。<strong>レジスタGPIOA_CRLのアドレスはオフセットが0x00なので0x40010800</strong>です。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/gpio-control-register.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/gpio-control-register.jpg" alt="" class="wp-image-2082" width="630" height="347" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-control-register.jpg 780w, https://depfields.com/wp-content/uploads/2020/06/gpio-control-register-300x165.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/gpio-control-register-768x423.jpg 768w" sizes="(max-width: 630px) 100vw, 630px" /></a><figcaption>GPIOレジスタ</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/port-setting-register.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/port-setting-register.jpg" alt="" class="wp-image-2085" width="550" height="481"/></a><figcaption>ポート設定レジスタ</figcaption></figure>



<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>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2020/06/gpio-initialize.jpg"><img decoding="async" width="703" height="273" src="https://depfields.com/wp-content/uploads/2020/06/gpio-initialize.jpg" alt="" class="wp-image-11452" srcset="https://depfields.com/wp-content/uploads/2020/06/gpio-initialize.jpg 703w, https://depfields.com/wp-content/uploads/2020/06/gpio-initialize-300x117.jpg 300w" sizes="(max-width: 703px) 100vw, 703px" /></a><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>構造体でまとめられている部分の詳細を確認してみましょう。パラメータは分類ごとに構造体によりまとめられています。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2020/06/details-of-Structure-.jpg"><img decoding="async" width="574" height="711" src="https://depfields.com/wp-content/uploads/2020/06/details-of-Structure-.jpg" alt="" class="wp-image-2101" srcset="https://depfields.com/wp-content/uploads/2020/06/details-of-Structure-.jpg 574w, https://depfields.com/wp-content/uploads/2020/06/details-of-Structure--242x300.jpg 242w" sizes="(max-width: 574px) 100vw, 574px" /></a></figure>



<h2 class="wp-block-heading">初期化関数 xx_Init()について</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>初期化関数GPIO_Init(GPIOx, &amp;GPIO_InitStructure)</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">stm32f10x_gpio.c</span></strong>内の<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>関数の部分ですので余力のあるひとは確認してみてください。</p>
</div></div></div>



<ol start="1" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>構造体メンバGPIO_Modeの下位4ビット分にマスクをかけ（&amp;0x0F）, currentmodeに値を代入。<br>次に上位1ビット目にマスクをかけ（＆0x10）入力か出力かの判別。<br>出力である場合は下位2ビット分にGPIO_Speed設定値(0bxx)をセット。</li></ol>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/table.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/table.jpg" alt="" class="wp-image-2091" width="570" height="223" srcset="https://depfields.com/wp-content/uploads/2020/06/table.jpg 660w, https://depfields.com/wp-content/uploads/2020/06/table-300x117.jpg 300w" sizes="(max-width: 570px) 100vw, 570px" /></a></figure>



<ol start="2" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>GPIO_CRLレジスタ（下位8ビット） pinすべてが0でないことを調べ(すべてが0の場合はGPIOが無効であることを意味するため)、各GPIOピンの0から7ピンに割り当てた4ビットにCNFn(2ビット)とMODEn（2ビット）の設定値をレジスタに書き込み、GPIOポートの各ピンの使用方法を設定する。(nは0～7のピン番)<br>8ピン全部に同じ処理を繰り返す。</li></ol>



<ol start="3" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>設定されたモードがGPIO_Mode_IPDの場合GPIOx_BRR（GPIOx）ビットリセット・レジスタ）の該当ビット1にセットする（該当ビットリセット：入力プルダウン抵抗設定）。<br>設定されたモードがGPIO_Mode_IPUの場合GPIOx_BSRR（GPIOxビットセット/リセット・レジスタ）のセットの該当ビット1にする（該当ビットセット：入力プルアップ抵抗設定）。<br>これも8ピン全部に同じ処理を繰り返し、GPIOx_CRL（下位のGPIOxコンフィグレーション・レジスタ）に書き込む。</li></ol>



<ol start="4" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>同様にGPIOx_CRH （上位のGPIOxコンフィグレーション・レジスタ）の処理を行い、関数GPIO_Init(GPIOA, &amp;GPIO_InitStructure);の処理を終える。そのあとGPIOBからGPIOEポートについて同様な処理を行う。</li></ol>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></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_Init(GPIOx, &amp;GPIO_InitStructure)で行われる処理です。</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">該当する制御レジスタのアドレスを特定して、設定したいパラメータを書き込むこと</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>ので、プログラムコードサイズを小さくし、より処理速度の向上を追求する場合には直接レジスタを操作する必要がでてくる場合があります。</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>



<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/register-map/" 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/bac2817e1ca146c2d04aa8c17d0af9d324d9c3b331332ee2c6abb499778c15c4.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">How to read the ARM STM32 register map [for advanced users] | Most Powerful B...</div></div><div class="lkc-url">https://en.depfields.com/register-map/</div><div class="lkc-excerpt">Register mapIf you use only the peripheral library, you do not need to be aware of the register map, but understanding how the MCU&#039;s registers are operated in the library will improve your MCU skills.From a different perspec</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/register-map/">ARMマイコンSTM32レジスタマップの見方【上級者向け】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARMマイコンSTM32F1シリーズのペリフェラルライブラリ</title>
		<link>https://depfields.com/library/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=library</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Tue, 02 Jun 2020 16:19:28 +0000</pubDate>
				<category><![CDATA[マイコン周辺機能（ペリフェラル）とは]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1978</guid>

					<description><![CDATA[<p>マイコンのペリフェラル ポイント 各ペリフェラルの機能をON/OFFといってもスイッチで行うわけではなく、クロックの供給の有無により機能させるかさせないかを設定します。クロックが供給されなければほとんどのペリフェラル（周 [&#8230;]</p>
<p>The post <a href="https://depfields.com/library/">ARMマイコンSTM32F1シリーズのペリフェラルライブラリ</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="640" height="591" src="https://depfields.com/wp-content/uploads/2020/06/books-2596809_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/06/books-2596809_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/06/books-2596809_640-300x277.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></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>仕様書にある<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>ターゲットマイコンのモデルタイプはARM　Cortex-M3マイコンのSTM32F103RBです。STM32F103RBマイコンの仕様表を示します。このマイコンはシリーズのミディアムパフォーマンスラインモデルです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/specification_rb.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/specification_rb.jpg" alt="" class="wp-image-6595" width="546" height="626" srcset="https://depfields.com/wp-content/uploads/2020/06/specification_rb.jpg 478w, https://depfields.com/wp-content/uploads/2020/06/specification_rb-262x300.jpg 262w" sizes="(max-width: 546px) 100vw, 546px" /></a><figcaption>STM32F103RB仕様</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>STM32F103RBマイコン内部は複雑ですが、簡略化すると下図のブロック図のようになります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/block_diagram_rb.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/block_diagram_rb.jpg" alt="" class="wp-image-6601" width="531" height="487"/></a><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>CPUとメモリ類はAHB（高速転送バス）で接続されており、一方ペリフェラルはAPB（高機能周辺回路バス）で接続されています。APB（Advanced Peripheral Bus）はAPB1とAPB2の2つに分けられており、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">APB1には低速なペリフェラル</span></strong>が接続されており、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">APB2には高速なペリフェラル</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>ペリフェラルは使用する機能だけ選択してONにし、<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-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>ピン配置を下図に示します。図の見方ですが、左下PA1（15）のピンはGPIOのポートAの1番目、つまりGPIOA_1を意味します。PA1のピンには汎用入出力以外にも<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>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/STM32F103RBピン配置.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/STM32F103RBピン配置.jpg" alt="" class="wp-image-6597" width="485" height="360" srcset="https://depfields.com/wp-content/uploads/2020/06/STM32F103RBピン配置.jpg 434w, https://depfields.com/wp-content/uploads/2020/06/STM32F103RBピン配置-300x223.jpg 300w" sizes="(max-width: 485px) 100vw, 485px" /></a><figcaption>ピン配置</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/multiple_functions_rb.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/multiple_functions_rb.png" alt="" class="wp-image-9942" width="574" height="430" srcset="https://depfields.com/wp-content/uploads/2020/06/multiple_functions_rb.png 582w, https://depfields.com/wp-content/uploads/2020/06/multiple_functions_rb-300x225.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></a><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>ARMマイコンが性能の割に消費電力が低いのは使っていない部分をきめ細かくOFFできるからです。<br><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>。これは自動で行われるのでなく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プログラム作成時に機能選択します</span></strong>。&nbsp;</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/OFFといってもスイッチで行うわけではなく、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">クロックの供給の有無により機能させるかさせないかを設定</span></strong>します。クロックが供給されなければほとんどのペリフェラル（周辺機能）は動作しません。&nbsp;</p>
</div>



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



<h2 class="wp-block-heading">SPL（Standard Peripheral Libraries）</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">「CMSIS」フォルダはARMマイコンコア用のライブラリ</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">STM32F10x_StdPeriph_Driver</span></strong>」フォルダ以下のファイルが各ペリフェラルのライブラリ群で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPL</span></strong>（Standard Peripheral Libraries）です。内容を確認してみるとライブラリ内にはC言語で記述された関数が機能設定ごとに複数定義されています。この関数が制御レジスタを操作しており、<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>名称がSTM32F10x_なのでこのライブラリはSTM10xシリーズマイコンが対象であることを意味しています。STM32F4シリーズなど仕様の異なるマイコンには使用できずその都度仕様にあったプロジェクトを新規作成して相当のライブラリを使用する必要があります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/spl.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/spl.jpg" alt="" class="wp-image-2033" width="380" height="438" srcset="https://depfields.com/wp-content/uploads/2020/06/spl.jpg 382w, https://depfields.com/wp-content/uploads/2020/06/spl-260x300.jpg 260w" sizes="(max-width: 380px) 100vw, 380px" /></a><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">stm32f10x_xxxx.c</span></strong>とヘッダファイル<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">stm32f10x_xxxx.h</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">stm32f10x.h</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>ペリフェラルライブラリにはペリフェラルごとに多くのヘッダファイルがありますが、それらはstm32f10x.hから呼び出されるようになっているため、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>stm32f10x.hをインクルードしておくだけでペリフェラルライブラリの機能全体を使用できます</strong>。</span></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>stm32f10x.h</strong>自体は「CMSIS」フォルダ以下「Device」-「ST」-「STM32F10x」-「Include」にあります。</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.hでライブラリ本体はstm32f10x_gpio.cです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/peripheral.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/peripheral.jpg" alt="" class="wp-image-2032" width="552" height="494" srcset="https://depfields.com/wp-content/uploads/2020/06/peripheral.jpg 558w, https://depfields.com/wp-content/uploads/2020/06/peripheral-300x268.jpg 300w" sizes="(max-width: 552px) 100vw, 552px" /></a><figcaption>搭載マイコンSTM32F1xxで使えるペリフェラルライブラリ</figcaption></figure>



<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>ここで、ペリフェラルを使えるようにするためのフローチャートを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">GPIOAのPin1</span>を<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">初期状態ではペリフェラルはOFF</span></strong>（クロックが供給されていない状態）なのでONにするために<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>します③。ペリフェラルによっては、別途起動④やキャリブレーション⑤が必要となります。<br>こうして、ペリフェラルは初期化を終えた段階になってアプリケーションプログラム内で任意に使用できるようになります。</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>初期化を設定してからクロックを供給しても設定は反映されません。<br>ペリフェラルの初期化変数はGPIOの場合はGPIO_InitTypeDef型の構造体変数で<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>にパラメータを渡しています（②の部分）。GPIO_InitTypeDef型の構造体変数はライブラリstm32f10x_gpioのヘッダファイル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>他のペリフェラルも同様にライブラリの中で定義されています。ペリフェラルの中でもタイマなどは高機能のために、初期化変数は機能ごとのグループ数種類に分かれた構造体変数となっています。設定するパラメータも多種類にわたります。詳細は各ペリフェラルで解説します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/peripheral_flow.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/peripheral_flow.png" alt="" class="wp-image-9945" width="580" height="400" srcset="https://depfields.com/wp-content/uploads/2020/06/peripheral_flow.png 856w, https://depfields.com/wp-content/uploads/2020/06/peripheral_flow-300x207.png 300w, https://depfields.com/wp-content/uploads/2020/06/peripheral_flow-768x530.png 768w" sizes="(max-width: 580px) 100vw, 580px" /></a><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>ペリフェラルをONさせるにはクロックを供給することは前述しました。低速なペリフェラルにはバスAPB1が接続されて、高速なペリフェラルにはバスAPB2が接続されているため、ペリフェラルのクロック供給も対象のバスのもので行います。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">バスAPB1とAPB2に接続されているペリフェラルの定義されたマクロ名をそれぞれ下表</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>各ペリフェラルはAPB1に属するものは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">RCC_APB1PeriphClockCmd関数</span>、</strong>APB2に属するものは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">RCC_APB1PeriphClockCmd関数</span></strong>を実行し、クロックを供給しON/OFFを設定します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">”ENABLE”でON</span></strong>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>”DISABLE”でOFF</strong></span>となります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/RCC_APB1Priph_rb.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/RCC_APB1Priph_rb.jpg" alt="" class="wp-image-6607" width="532" height="386" srcset="https://depfields.com/wp-content/uploads/2020/06/RCC_APB1Priph_rb.jpg 532w, https://depfields.com/wp-content/uploads/2020/06/RCC_APB1Priph_rb-300x218.jpg 300w" sizes="(max-width: 532px) 100vw, 532px" /></a><figcaption>ペリフェラルAPB1</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/RCC_APB2Priph_rb.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/RCC_APB2Priph_rb.jpg" alt="" class="wp-image-6605" width="532" height="338" srcset="https://depfields.com/wp-content/uploads/2020/06/RCC_APB2Priph_rb.jpg 532w, https://depfields.com/wp-content/uploads/2020/06/RCC_APB2Priph_rb-300x191.jpg 300w" sizes="(max-width: 532px) 100vw, 532px" /></a><figcaption> ペリフェラルAPB2</figcaption></figure>



<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>各ペリフェラルの制御レジスタにはたくさんの機能が割り当てられています。例えば、<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>、入力の場合は扱う信号によりアナログ、プルアップ、プルダウン、デジタル電圧入力の4種類の<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>があります。STM32マイコンでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">32ビットのアドレス</span></strong>で、例えば、具体的にはGPIOAのピン1の入出力仕様を選択するレジスタはGPIOA_CRLでアドレスは0x40010800です。この特定されたアドレスのレジスタに上記の仕様機能が割り当てられていて、デジタル値の0(OFF)と1(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>マイコンはデジタルシステムで<strong>多数のスイッチを組み合わせて機能</strong>するものですので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御レジスタに0と1を書き込む</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>各制御レジスタに設定する一連の動作を<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>



<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="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">入門者でも簡単</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-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/library/" 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/84a308c24bda5cd8eba261610e0688ed239dbe43989b3a0f6c0f1c8c0025ea70.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Peripheral library for ARM STM32F1 series | Most Powerful Bible to Become an ...</div></div><div class="lkc-url">https://en.depfields.com/library/</div><div class="lkc-excerpt">MCU PeripheralsA peripheral library is a driver that allows you to easily set the control registers of peripheral functions (peripherals) in the specifications. From this point onward, we will provide specific explanations based o</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/library/">ARMマイコンSTM32F1シリーズのペリフェラルライブラリ</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARMマイコンSTM32の周辺機能とファームウェアライブラリとの関連</title>
		<link>https://depfields.com/firmware/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=firmware</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Mon, 01 Jun 2020 14:11:29 +0000</pubDate>
				<category><![CDATA[マイコン周辺機能（ペリフェラル）とは]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1976</guid>

					<description><![CDATA[<p>ファームウェアの役割とは ソフトウェア・システム構成 ライブラリSPLを使用する理由 ポイント ある程度、STM32マイコンに慣れてきたところで、最新の開発環境にシフトしてHALを使用するとその便利さは発揮されるでしょう [&#8230;]</p>
<p>The post <a href="https://depfields.com/firmware/">ARMマイコンSTM32の周辺機能とファームウェアライブラリとの関連</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="640" height="426" src="https://depfields.com/wp-content/uploads/2020/06/old-books-436498_640.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/06/old-books-436498_640.jpg 640w, https://depfields.com/wp-content/uploads/2020/06/old-books-436498_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></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>マイコンにはさまざまな<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>）が内蔵されています。代表的なものに汎用入出力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>マイコンのリファレンスマニュアルにはレジスタ詳細について記述されていますが、このマニュアル通りにレジスタ設定のプログラムを作成していくことは慣れているひとでも大変です。マイコンを使った組み込みエンジニアは<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>しています。このため、一度、使用するマイコン機種のハードウェアに依存する部分であるペリフェラルライブラリ（デバイスドライバ）の使い方を把握すると、後はアプリケーションの開発だけに集中できます。</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>、<strong>応答速度などのパフォーマンスをあげたりする</strong>ことができますので組み込みスキルがあがり慣れるにしたがって、挑戦してみてはいかがでしょうか。</p>
</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>比較的簡素で単機能な組み込み機器である場合は、<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>だけでソフトウェアは構成できますが(構成A)、モニター表示しながら通信を同時におこない、さらにモーターを駆動するような<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">OS（Operation System）が必要</span></strong>となってきます（構成B）。</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">RTOS（RealTime Operation System）を使用</span></strong>します。さらにEthernet通信などを組み込む場合などはソフトウェアの通信プロトコルスタックを搭載させる必要がでてきますがこのようなソフトウェアを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ミドルウェア</span></strong>といいます（構成C）。</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>ですのでどの種類のマイコンでも使用できます（多少の修正は必要な場合はあります）。ただし、ビット数の異なるマイコン（32bitマイコンから8bitマイコンへ）間ではそのままでは互換性はないと認識してください。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/06/software-construction.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/software-construction.jpg" alt="" class="wp-image-1984" width="665" height="248" srcset="https://depfields.com/wp-content/uploads/2020/06/software-construction.jpg 780w, https://depfields.com/wp-content/uploads/2020/06/software-construction-300x112.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/software-construction-768x287.jpg 768w" sizes="(max-width: 665px) 100vw, 665px" /></a><figcaption>ソフトウェア構成</figcaption></figure>



<h2 class="wp-block-heading">ライブラリSPLを使用する理由</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>当サイトで採用するマイコンはARM Cortex-M3コア搭載のSTM32F1シリーズで<strong>ファームウェア</strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Standrd Peripheral Library(SPL)</span>と呼ばれている<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>メーカーでは技術の進歩に合わせて新しく高性能のマイコンを開発、リリースすると同時に開発環境も更新していきます。当然、ファームウェアも更新していくわけですが、ファームウェアはSPLからHAL（Hardware Abstraction Layer）とよばれるライブラリに移行している段階です。</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>HALの特徴はSTM32マイコンからの移植性も考慮した抽象度の高いドライバで開発期間を短縮できる利便性を追求したもの</strong>です。今後はSTM32マイコンではHALを中心に開発を進めていくことになるのでしょうが、プログラムコードサイズは大きくなりブラックボックス的な要素があります。</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>マイコンの基礎を理解したうえで使用するにはよいのですが、これから組み込み技術の習得を目指すものがHALから始めると<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>当サイトは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">組み込み技術の入門者向け</span></strong>のため、あえてHALは使用せず<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLで進めていく</span></strong>ことにします。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLはシンプルで制御レジスタとの関連がわかりやすいマクロ</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">SPLのもう一つの利点は使用するにあたっての情報が豊富</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">SPLはマイコンの概念的なところが理解しやすい</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 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>ある程度、STM32マイコンに慣れてきたところで、最新の開発環境にシフトしてHALを使用するとその便利さは発揮されるでしょう。</p>
</div>



<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/firmware/" 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/29911b035f6891cfe99ebd678339085e9bad3b6bab499e3a2d92527a79d38cfe.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARM STM32 peripheral functions and their relation to firmware libraries | Mos...</div></div><div class="lkc-url">https://en.depfields.com/firmware/</div><div class="lkc-excerpt">What is the role of firmware?MCUs have a variety of built-in peripheral functions (peripherals). Typical examples are general-purpose input/output GPIOs, but GPIO control registers must be set to define the details of input/output</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/firmware/">ARMマイコンSTM32の周辺機能とファームウェアライブラリとの関連</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARMで電子工作しながら学習するのにお勧めNucleo開発ボード</title>
		<link>https://depfields.com/board/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=board</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Thu, 28 May 2020 04:14:00 +0000</pubDate>
				<category><![CDATA[組み込みに使われるマイコン]]></category>
		<category><![CDATA[STM32CubeIDE]]></category>
		<category><![CDATA[STM32]]></category>
		<category><![CDATA[Nucleo]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1541</guid>

					<description><![CDATA[<p>STM32マイコン搭載のNucleoボードを教材に使用する理由 マイコンボード仕様 ピンタイプ：I 入力　O 出力　I/O 入出力、S 供給電源I/Oレベル：FT 5V耐圧　無記入 電源電圧 教材ボードを利用したプログラ [&#8230;]</p>
<p>The post <a href="https://depfields.com/board/">ARMで電子工作しながら学習するのにお勧めNucleo開発ボード</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="409" height="291" src="https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 409px) 100vw, 409px" /></div>




<h2 class="wp-block-heading">STM32マイコン搭載のNucleoボードを教材に使用する理由</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">実装への試行錯誤の行程を大幅に短縮</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>当サイトで教材として使用するボードはARM Cortex-M3コア<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32F103RB</span></strong>を搭載した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">NUCLEO-F103RB</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>があり、初心者の場合はそこで挫折してしまいかねません。特に、マイコンを初めて扱うひとには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">当サイトで紹介する教材ボードを使用して学習することをお勧めします</span></strong>。教材のマイコン操作に慣れたころには、他の仕様の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>NUCLEO-F103RB以外</strong>のSTM32マイコンが搭載されているボードでは、特にSTM32F1シリーズマイコンの場合は、互換性があるため同じSPL（Standard Peripheral Library)が使用でき、プロジェクト作成時に相当のMPUを選定して、SPL内で指定する<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>STM32マイコン</strong>でもSTM32F1シリーズでない場合、例えばCortex-M4コア搭載のSTM32F4シリーズではF4シリーズ専用SPLを使用する必要があり、当サイトで使用しているF1シリーズのSPLとは互換性がありませんので、そのままでは使用できません。STM32F1シリーズのマイコンで基本を理解したあとでは、移植もそんなに難しいものではありませんので使えるようになりますが、慣れないうちはF1シリーズで、特に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">当サイトと同じ環境のNUCLEO-F103RBを使用することをおすすめ</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>STM32F4などはCortex-M4を搭載していて、STM32F1(Cortex-M3)の上位機種となり、動作クロックも高く、浮動小数点演算機能をハードウェアで実現できたり高性能・高機能ではありますが、初心者の学習目的ではSTM32F1で過不足はまったくありません。また、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32F4</span></strong>は当サイトで学習用として奨励しているSPLでも機能させることはできるのですが、性能・機能を活かすためにはできるだけ<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最新のライブラリであるHAL(Hardware Abstruction Layer)ライブラリを使うほうがよい</span></strong>ため、F1シリーズで慣れてから上位機種を選ぶことをおすすめします。</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">STM32F103RBが搭載</span></strong>されています。外部クロック発振源として水晶振動子8MHzを搭載しており、システムクロックは72MHzとしています。通常のアプリケーションでは十分な処理速度です。</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>Nucleoボードはデバッガ用<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ST-Linkを内蔵</span></strong>していますのでUSBケーブルのみで学習を開始できます。</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>このボードはSTエレクトロニクス社のNUCLEOシリーズでSTM32F1マイコンを搭載したものです。NUCLEOシリーズの特徴は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ARM Mbed開発環境に対応</span></strong>した基板であることに加えて、電子工作で大人気の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Arduino Uno Rev.3と互換のIOピンヘッダを搭載している</span></strong>ので電子工作でArduinono対応の数多い資産を利用することができます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb.jpg" alt="" class="wp-image-4970" width="482" height="343" srcset="https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 482px) 100vw, 482px" /><figcaption>教材ボードNUCLEO-F103RB</figcaption></figure>



<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>以下に、教材マイコンボードの仕様を示します。<br>プログラム転送や学習のためのマイコン動作をちょっとした軽負荷で動作確認するだけであれば<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ボードに内蔵のST-LINK</span></strong>へ<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">USBケーブルを介して電源が供給されますので外付け電源は不要</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/05/table-mc_rb.jpg" alt="" class="wp-image-5029" width="509" height="217" srcset="https://depfields.com/wp-content/uploads/2020/05/table-mc_rb.jpg 473w, https://depfields.com/wp-content/uploads/2020/05/table-mc_rb-300x128.jpg 300w" sizes="(max-width: 509px) 100vw, 509px" /><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>ボード上にはヘッダピンとソケットがありますが、外側のヘッダピン(CN7/CN10)がSTMマイコン直結のMorphoコネクタとよばれるものです。内側のソケット(CN8/CN9)はArduinoに互換なのでこのボード自体をArduinoの互換機として開発もできるし、Arduino用の外付けシールドなどを活用することもできます。当サイトではArduinoの開発のことは割愛します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/learning_board_nucleo.jpg" alt="" class="wp-image-5080" width="555" height="566"/><figcaption>NUCLEO-F103RBレイアウト</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="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>下記にSTM32F103RBのピン番号をそれに対応する機能をまとめました。この<strong>ピン番号はマイコン自体のもの</strong>であってNulecoのMorphoコネクタの番号ではありませんのでご注意ください。例えば、CN7の１番目は"<strong>PC10"</strong>であるからSTM32F103RBのピン51に直結しています。</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>下記のピン定義表からこのピンはデフォルトでは汎用入出力Cポートの10として入力か出力で使用することができますが、リマップするとUSART3_TXで使うこともできるようになります。</p>
</div></div></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/08/table_pin.jpg" alt="" class="wp-image-6718" width="478" height="2382" srcset="https://depfields.com/wp-content/uploads/2020/08/table_pin.jpg 478w, https://depfields.com/wp-content/uploads/2020/08/table_pin-60x300.jpg 60w, https://depfields.com/wp-content/uploads/2020/08/table_pin-308x1536.jpg 308w, https://depfields.com/wp-content/uploads/2020/08/table_pin-411x2048.jpg 411w" sizes="(max-width: 478px) 100vw, 478px" /><figcaption>STM32F103RBピン定義表</figcaption></figure>



<p>ピンタイプ：I 入力　O 出力　I/O 入出力、S 供給電源<br>I/Oレベル：FT 5V耐圧　無記入  電源電圧</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></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>通常、C言語のプログラミングを学習するためには、<br>例えばWINDOS上で動作するC言語の開発環境として、Visual Studio等開発環境を構築してプログラミング学習を行います。</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">printf文を使ってモニター表示で確認</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">学習目的がWindowsアプリの作成などはっきりとしている場合には有効</span></strong>で学習しながらスキルアップも図ることができるのですが、単にC言語学習だけが目的の場合では<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>この方法の利点はPCだけでC言語を学習できることですが、コンパイラがマイコン用ではありませんので、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>マイコン用C言語コンパイラに適用する場合は変数の型など仕様変更が必要</strong></span>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/cprograming.jpg" alt="" class="wp-image-1573" width="502" height="256" srcset="https://depfields.com/wp-content/uploads/2020/05/cprograming.jpg 506w, https://depfields.com/wp-content/uploads/2020/05/cprograming-300x153.jpg 300w" sizes="(max-width: 502px) 100vw, 502px" /><figcaption>C言語総合開発環境</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">教材ボードを使用したC言語学習を行う方法</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">PCとシリアル通信できる環境を構成</span></strong>すると、実際のマイコン内で動作するC言語によるプログラムをPCにモニター表示できるようになるので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実践的なC言語プログラミングとマイコン操作の学習を同時に行うことができる</span></strong>ようになります。プログラム実行環境(マイコン)と異なるシステム（PC）で開発をおこなう<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>環境構築に必要なものはPCの他に、教材ボード（マイコン）、USB-UART変換ケーブルおよびST-Linkデバッガと呼ばれるものです。PCだけではC言語学習ができないのはデメリットですが、これからマイコンを始める人にとっては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンを直接操作するC言語の動作を確認しながら学習できる</span></strong>のは大きなメリットとなります。また、C言語のコンパイラが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-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>STM32マイコン用プログラムを作成する総合開発環境STM32CubeIDEとST-Linkデバッガの組み合わせで、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンと通信してプログラムを動作</span></strong>させます。プログラムの動作をPC上でモニター確認するために、シリアル通信をおこないます。</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>PC上にはターミナルソフト（端末エミュレータ）と呼ばれる通信ソフトを使用して、シリアル通信を行います。マイコンとの接続は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">UART-USB変換ケーブルを使用</span></strong>します。ST-Linkの接続からマイコン電源は供給されますのでC言語学習目的では外付け電源はなくても動作します。</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>初心者にとっては環境構築をすべて理解しておこなうことは難しいのですが、とにかく、PCとシリアル通信ができる環境を整えるところから始まります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/clossdevelop_a.jpg" alt="" class="wp-image-5028" width="699" height="426" srcset="https://depfields.com/wp-content/uploads/2020/05/clossdevelop_a.jpg 680w, https://depfields.com/wp-content/uploads/2020/05/clossdevelop_a-300x183.jpg 300w" sizes="(max-width: 699px) 100vw, 699px" /><figcaption>クロス開発環境</figcaption></figure>



<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>マイコン学習にあたって最低限必要な機材：<br />・<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">マイコンボード(STM32F1xx Cortex-M3搭載)<br />・USBケーブル（Mini USB Type-B)<br /></span></strong>・<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">プログラム転送用デバッガST-LINK/V2：<span style="color: #ff0000;">Nucleoボードには内蔵</span><br />・信号入力用SW類（押しボタンSWなど）：<span style="color: #ff0000;">Nucleoボードには内蔵</span><br />・信号出力確認用ランプ類（LEDなど）：<span style="color: #ff0000;">Nucleoボードには内蔵</span><br />・電流制限用抵抗器やボリューム：<span style="color: #ff0000;">外付けでLEDなどを使用する場合</span></span></strong></p>
<p>あれば便利なツール：<br />・<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">USB-UART変換ケーブル</span></strong>（これがあれば入出力はPCモニターで確認できる!!）</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></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>市販のマイコンボードでSTM32F1xx（Cortex-M3)シリーズが搭載されているものは当サイトの内容を一部実践で動作確認することに使用することができます。</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>ただし、当サイトで使用するアプリケーションプログラムは指定の教材ボード (NUCLEO-F103RB) 用ですので搭載している<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-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-gallery has-nested-images columns-4 is-cropped wp-block-gallery-20 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="582" height="357" data-id="3374" src="https://depfields.com/wp-content/uploads/2020/06/stm32discovery.jpg" alt="" class="wp-image-3374" srcset="https://depfields.com/wp-content/uploads/2020/06/stm32discovery.jpg 582w, https://depfields.com/wp-content/uploads/2020/06/stm32discovery-300x184.jpg 300w" sizes="(max-width: 582px) 100vw, 582px" /><figcaption>STMVLDiscovery(F100RB)</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="409" height="291" data-id="4970" src="https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb.jpg" alt="" class="wp-image-4970" srcset="https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb.jpg 409w, https://depfields.com/wp-content/uploads/2020/05/nureo-f103rb-300x213.jpg 300w" sizes="(max-width: 409px) 100vw, 409px" /><figcaption>Nucleo-F103RB</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="554" height="407" data-id="3373" src="https://depfields.com/wp-content/uploads/2020/06/stbee.jpg" alt="" class="wp-image-3373" srcset="https://depfields.com/wp-content/uploads/2020/06/stbee.jpg 554w, https://depfields.com/wp-content/uploads/2020/06/stbee-300x220.jpg 300w" sizes="(max-width: 554px) 100vw, 554px" /><figcaption>STBee (STM32F103VE)</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="424" height="309" data-id="3375" src="https://depfields.com/wp-content/uploads/2020/06/stm32f103c8.jpg" alt="" class="wp-image-3375" srcset="https://depfields.com/wp-content/uploads/2020/06/stm32f103c8.jpg 424w, https://depfields.com/wp-content/uploads/2020/06/stm32f103c8-300x219.jpg 300w" sizes="(max-width: 424px) 100vw, 424px" /><figcaption>STM32F103C8 board</figcaption></figure>
<figcaption class="blocks-gallery-caption">市販の教材ボード</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>市販の教材ボードを選ぶにはマイコンがSTM32F１xxシリーズが搭載されていることと、SWDデバッガ用ピンPA13とPA14が使えるものが条件です。</p>
</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>教材ボードの入出力用部品を接続するのにははんだ付け不要の<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>入出力用パーツとしては押しボタンスイッチ、LED、抵抗器などがあればよいのですが、最近では電子工作入門キットとしてある程度まとめられたものが販売されています。抵抗器は330Ω程度のものと、1kΩ程度のものを使用します。詳細は「<strong><a href="https://depfields.com/applications/">アプリケーションと実践</a></strong>」章の各アプリで使用する配線図にあります。</p>
</div></div></div>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-22 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="537" height="346" data-id="3385" src="https://depfields.com/wp-content/uploads/2020/06/bread-board-1.jpg" alt="" class="wp-image-3385" srcset="https://depfields.com/wp-content/uploads/2020/06/bread-board-1.jpg 537w, https://depfields.com/wp-content/uploads/2020/06/bread-board-1-300x193.jpg 300w" sizes="(max-width: 537px) 100vw, 537px" /><figcaption>ブレッドボード</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="510" height="378" data-id="3386" src="https://depfields.com/wp-content/uploads/2020/06/jump-wire-1.jpg" alt="" class="wp-image-3386" srcset="https://depfields.com/wp-content/uploads/2020/06/jump-wire-1.jpg 510w, https://depfields.com/wp-content/uploads/2020/06/jump-wire-1-300x222.jpg 300w" sizes="(max-width: 510px) 100vw, 510px" /><figcaption>ジャンプワイヤ</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="780" height="447" data-id="3387" src="https://depfields.com/wp-content/uploads/2020/06/parts-1.jpg" alt="" class="wp-image-3387" srcset="https://depfields.com/wp-content/uploads/2020/06/parts-1.jpg 780w, https://depfields.com/wp-content/uploads/2020/06/parts-1-300x172.jpg 300w, https://depfields.com/wp-content/uploads/2020/06/parts-1-768x440.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /><figcaption>電子部品類</figcaption></figure>
<figcaption class="blocks-gallery-caption">教材部品</figcaption></figure>



<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>外付けの部品を使用しないでプログラムの動作を確認するだけであれば、プログラム転送用デバッガST-LINKから電源が供給されるので外付けの電源は不要です。通常はPCのUSBバスパワーからの電源で300mAまで供給でき、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ST-Linkデバイス側で保護回路によりUSB電流を管理</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>電源電流が300mAを超える負荷のかかる入出力の部品を装着する場合は<strong>外付け電源(DC5/7-12V)が必要</strong>です。<br>例えば、WiFiモジュールでの通信を行う場合などUSBポートからの電源では不足気味の場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>外部から</strong>５V電源を供給すると安定します。</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>Nucleoシリーズのボードへの電源供給は<strong>USBポートからのUSBバスパワー</strong>の他に、外部電源を供給することができます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">５V外部電源の場合</span></strong>（最大500mA)は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">E5V</span></strong>(CN7-6)へ、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">７~12V外部電源</span></strong>（最大800mA)の場合は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">VIN</span></strong>(CN7-24またはCN6-8)へ接続します。外部電源を使用する場合はボード上の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ジャンパピンJP5をE5V側に設定すると有効</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>ただし、ジャンパピンJP5をE5V側に設定するとUSBの電流保護回路が切断され機能しない状態となり最悪PCの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">USBポートにダメージを与える恐れがあるため</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>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/08/external-power-supply.jpg" alt="" class="wp-image-6973" width="594" height="466" srcset="https://depfields.com/wp-content/uploads/2020/08/external-power-supply.jpg 594w, https://depfields.com/wp-content/uploads/2020/08/external-power-supply-300x235.jpg 300w" sizes="(max-width: 594px) 100vw, 594px" /><figcaption> 外部電源使用時の設定 </figcaption></figure>



<ol class="is-style-vk-numbered-circle-mark"><li><strong>JP5をEV5側に設定</strong>する</li><li>外部電源をE5V(5V)かVIN(7~12V)に接続し、電源を投入する</li><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源ランプLD3の点灯を確認</span></strong></li><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">USBを接続</span></strong>（<strong>USBポートに接続するのは最後</strong>にすることが重要）</li></ol>



<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 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>Nucleoボードへの供給電源は3通り：<br></strong><strong>・USBから供給（JP5: U5V側）ST-Linkデバイス側でUSB電流を管理</strong><br><strong>・５VをE5Vへ供給（JP5: E5V側）<br>・7~12VをVINへ供給（JP5: E5V側）</strong></p>
<p><strong>（重要）外部電源を使う場合は先に外部電源を投入してから最後にUSBケーブルを接続すること！</strong></p>
</div>
<p>&nbsp;</p>



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



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/06/power-supply.jpg" alt="" class="wp-image-3396" width="450" height="293" srcset="https://depfields.com/wp-content/uploads/2020/06/power-supply.jpg 533w, https://depfields.com/wp-content/uploads/2020/06/power-supply-300x196.jpg 300w" sizes="(max-width: 450px) 100vw, 450px" /><figcaption>外付け電源</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>



<p></p>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/board/" 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/5038820c610d054a04b61c56808a533c405e2bae2172acf00fe44f0a0fd29669.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">STM32Nucleo board recommended for learning while electronics work | Most Powe...</div></div><div class="lkc-url">https://en.depfields.com/board/</div><div class="lkc-excerpt">Why use Nucleo boards with STM32 microcontrollers for teaching materials?The shortest way to learn MCUs is to actually operate a MCU and check its operation by yourself. If the operating environment is the same as the one explaine</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/board/">ARMで電子工作しながら学習するのにお勧めNucleo開発ボード</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARMマイコンSTM32の学習におすすめの開発環境【初心者必見】</title>
		<link>https://depfields.com/environment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=environment</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 27 May 2020 07:03:38 +0000</pubDate>
				<category><![CDATA[組み込みに使われるマイコン]]></category>
		<category><![CDATA[STM32CubeIDE]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1402</guid>

					<description><![CDATA[<p>ARMマイコン(STM32)初心者が勉強するのに適した開発環境とは プログラムを作成するために何を準備すればいいのでしょうか。 作成したプログラムが動作するマイコンと周辺回路搭載のハードウェア（インターフェース）はどうす [&#8230;]</p>
<p>The post <a href="https://depfields.com/environment/">ARMマイコンSTM32の学習におすすめの開発環境【初心者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="1024" height="683" src="https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-1024x683.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-1024x683.jpg 1024w, https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-300x200.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-768x512.jpg 768w, https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-1536x1024.jpg 1536w, https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-2048x1365.jpg 2048w, https://depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-scaled.jpg 780w" sizes="(max-width: 1024px) 100vw, 1024px" /></div>






<h2 class="wp-block-heading">ARMマイコン(STM32)初心者が勉強するのに適した開発環境とは</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>についてです。</p>
</div></div></div>



<ul class="environment1"><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プログラムを作成するために何を準備</span></strong>すればいいのでしょうか。</li><li>作成したプログラムが動作する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンと周辺回路搭載のハードウェア（インターフェース）</span></strong>はどうすればいいでしょうか。</li><li>作成したプログラムを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンに転送するためのツール</span></strong>はどうすればいいのでしょうか。</li></ul>



<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>具体的には以上のことではないでしょうか。<br>筆者も組み込みを始めた当初、マイコンを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>マイコン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>今でも開発環境についての情報は便利なツールも含め更にふえたので入門者ではどれから始めたらよいのかますます困難でしょう。これまで筆者がたどってきた選択のポイントを顧みながら今では当面はこれを使っておけばよいといったものを紹介しましょう。</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">Windows PCで動作し、学習目的のため無料であること</span></strong>。<br>ただし、開発環境の無料版のものは数ありますがコード制限のあるものや機能制限のあるものは使えません。</p>
</div>



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



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/development-environment.jpg" alt="" class="wp-image-1419" width="524" height="229" srcset="https://depfields.com/wp-content/uploads/2020/05/development-environment.jpg 667w, https://depfields.com/wp-content/uploads/2020/05/development-environment-300x131.jpg 300w" sizes="(max-width: 524px) 100vw, 524px" /><figcaption>マイコン開発環境</figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>マイコンの開発には通常、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">総合開発環境</span></strong>（<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">IDE</span></strong>：Integrated Development Environment )とよばれるソフトウェア開発用のさまざまな機能がオールインワンとなったパッケージアプリケーションを使用します。総合開発環境にはプログラムを記述する<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">エディタ</span></strong>、C言語等プログラミングの<strong>コンパイラ</strong>、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">アセンブラ</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>および<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">デバッガ</span></strong>等の機能が備わっています。</p>
<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>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></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">EclipseをベースにしたSTM32開発環境の構築</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>。</p>
</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>STM32シリーズでは以前より<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">スタンダードペリフェラルライブラリ（SPL）</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>対して、最新の開発環境ツールではファームウェアライブラリは最新のマイコンにも対応できるように一新（<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLに対してHAL、LLと呼ばれるライブラリ</span></strong>）されているため、今後新しいマイコンの新規開発ではこちらを使うべきなのですが、HALとLLファームウェアライブラリのまとまった解説情報はあまりない状況です。</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">HALコードは抽象化されている</span></strong>ため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPL</span></strong>で理解したあとで使用することをすすめます。今後はこちらが主流となるため、解説記事なども増えて使いやすくなるのでしょうが、入門者には敷居が低くなったようにも見えますが向いていないように感じられます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLでマイコンの基礎を十分に身に着けてから使用するとHAL、LLには容易に移行できます</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">Arduino</span></strong>やARMマイコンのメーカーの垣根を超えた開発環境である<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Mbed</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>ことです。STM32の<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">HALライブラリ</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-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">ハードウェアに近いSPLを使用することを奨励</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">SPL</span></strong>によりSTM32マイコンにある程度なれたら、STM32CubeIDEの本来の使い方（HALライブラリとコード自動生成）を使うことを始めるのがよいと思います。実際の開発では新しい環境で行うことがマイコンの種類に限りはないし、効率もよいです。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLで基礎ができていればHAL等への移植は容易</span></strong>です。</p>
</div></div></div>



<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 style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>&nbsp;技術には<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">パラダイムシフト</span></strong>により真空管からドランジスタ、LSI、マイコンに進化して行く過程で例えば真空管の知識などはエンジニアにとって現在ではあえて必要のあるものではありません。マイコン開発を行っていく上では、例えば一昔まえではアセンブリ言語と呼ばれるマイコンに近い低水準言語でプログラムを作成していましたが、今ではアセンブリを使用しなくてもより開発しやすいC言語などで開発ができてしまいます。また、IoTを実現するうえで使う通信のプロトコル・スタックの中身などはあえて知らなくても完成されたものを利用できればそれでよい場合もあります。ただ、すべてがそうではなくて<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">開発するにあたって押さえるべき基礎</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>しておいてはじめて<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">使えるエンジニア</span></strong>として活躍できるようになるのです（ホビー目的の電子工作ではそこまでは求められないかもしれませんが）。現代では数多くある開発プログラム言語のなかでも比較的古典的なプログラミング言語であるC言語が開発ではまだ現役であることがそれを物語っています。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">SPLをあえて採用</span></strong>しているのはそういった意味も込められています。</p>
</div>



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



<h2 class="wp-block-heading">STM32マイコンの開発ツール</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>実際のところツールになにを選べばよいかの話に戻りますが、STM32専用開発環境のIDE（総合開発環境）がよくSTマイクロ社公式のIDEであるTrueSTUDIOが最強です（正確にいえば最強でした）。Eclipseベースでとても使いやすい環境です。機能制限がなく、コンパイラからデバッガまですべてオールインワンでプログラム作成からプログラム転送まで簡単に実現できる開発環境です。</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>このIDEとの組み合わせで視覚的に周辺機能などの機能を選択するとコードを自動生成してくれるアプリであるSTM32CubeMXもありますが<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>この原稿を作成している現在は、IDEのTrueSTUDIOと自動生成ツールSTM32CubeMXを統合した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32CubeIDE</span></strong>が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STマイクロ純正のIDEとして主流</span></strong>となっています。同時にTrueSTUDIOは新規開発には非奨励対象となりました。</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">STM32CubeIDEを使用して慣れていくのがベストな選択</span></strong>だと考えます。ただ、スタンダードペリフェラルライブラリ（SPL）には対応していませんので<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-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>で対応できるスキルを身につけることも重要でしょう。</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>このサイトでは組み込み技術入門者に32ビットマイコンARMコア搭載のSTM32を教材として使用してマイコンをつかいこなすための基本を習得してもらうものが趣旨ですので、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">総合開発環境STM32CubeIDEに対象マイコンのファームウェアライブラリSPLを組み込んだもの</span></strong>を使用することにしています。</p>
</div></div></div>



<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 style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>持論ですが<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">開発環境はできるだけシンプルなものが好ましい</span></strong>と考えています。その点、STM32CubeIDEは色々な機能が盛り込まれてはいるのですが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">使うものを限定するとシンプル</span></strong>です。インストールをするとコンパイラに必要な専用のツールチェインをはじめ、必要なツールすべてが自動的に組み込まれます。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">手動で追加するのはスタンダードペリフェラルライブラリ(SPL)とFreeRTOSだけ</span></strong>です。アプリケーションによっては必要に応じてファームウェアを追加すればよいわけで、基本的なものはオールインワンの開発環境です。</p>
</div>



<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="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>STM32CubeIDEはコード自動生成などの最新のツールも含まれています。ただし、生成されるコードはHALライブラリですのでファームウェアライブラリSPLが使用できる開発環境で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></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">SWD方式のST-Link/V2</span></strong>を使用します。詳細は「開発環境構築」および「実装」で解説します。当サイトで教材ボードとして使用する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">NUCLEO-F103RBにはST-Link/V2が含まれています</span></strong>。</p>
</div></div></div>





<h2 class="wp-block-heading">STM32CubeIDEの構築</h2>



<p>ターゲットマイコン：ARM Cortex-M3 STM32F103RB(NUCLEO-F103RB)<br>デバッガ：ST-Link/V2 SWD</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/STM32CubeIDE.jpg" alt="" class="wp-image-5011" width="544" height="141"/><figcaption>STM32CubeIDEの開発環境</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">このサイトの教材(Nucleo-STM32F103RB</span>)</strong>を使用するための開発環境として、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPLおよびFreeRTOSを組み込んだ仕様を構築</span></strong>します。STM32CubeIDEの開発環境仕様として最も軽快なものではないでしょうか。</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>。<br>このサイトでは使用しませんが、STM32CubeIDEにはコード自動生成機能もありますので、ある程度慣れてきてから挑戦してみてはいかがでしょうか。</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マイコンの開発環境として使用するSTM32CubeIDEのダウンロードからインストールまでに関しましてはインターネットで十分な情報が得られますので詳細は割愛します。インストール半ばで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ST-Link関連のコンポーネントチェック選択箇所がありますのでチェックを入れておいてください</span></strong>。SEGGER-Jlinkドライバは使用しないのでチェックを外しておいてもよいです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step5.jpg" alt="" class="wp-image-1444" width="432" height="336" srcset="https://depfields.com/wp-content/uploads/2020/05/step5.jpg 496w, https://depfields.com/wp-content/uploads/2020/05/step5-300x233.jpg 300w" sizes="(max-width: 432px) 100vw, 432px" /><figcaption>ST-LINKのチェック</figcaption></figure>



<p class="has-medium-font-size"><a href="https://depfields.com/troubleshoot/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">インストールができない場合の解決手順はこちら</a></p>



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



<h2 class="wp-block-heading">ファームウェアライブラリSPLを組み込んだプロジェクトの作成</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/spllibrary-stm32cortexm3/'>ファームウェアライブラリSPL(STM32 Cortex-M3用）</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 356.56 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='1683'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<script>
( function() {
	let f =(v)=>{
		let l = location.href.split('#')[0];
		let e = document.getElementsByClassName(v);
		let ec = e.length;
		for(let i=0;i<ec;i++){
			let h = e[i].href;
			h= h.indexOf(l) === 0 ?  h.replace(l,'') : h;
 			if(h ==="#"){e[i].href="javascript:void(0)";}
  		}
	}
	window.addEventListener('DOMContentLoaded', function() {
 		f('wpdm-download-link');
	});
}());
</script>



<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/freertos/'>FreeRTOS</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 81.20 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='1684'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>





<ol class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>インストールしたSTM32CubeIDEアイコンをクリックして起動</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step8.jpg" alt="" class="wp-image-1462" width="58" height="75"/></figure>



<ol start="2" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>作業用フォルダワークスペースを指定します。<br>慣れるまではデフォルトでいいと思います。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step9.jpg" alt="" class="wp-image-1464" width="595" height="259" srcset="https://depfields.com/wp-content/uploads/2020/05/step9.jpg 635w, https://depfields.com/wp-content/uploads/2020/05/step9-300x130.jpg 300w" sizes="(max-width: 595px) 100vw, 595px" /></figure>



<ol start="3" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>この画面がでてきたら新規のプロジェクトを作成するので左のアイコンを選択<br>あるいはメニューバー「File」-「New」-「STM32 Project」　</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step11.jpg" alt="" class="wp-image-1465" width="569" height="525" srcset="https://depfields.com/wp-content/uploads/2020/05/step11.jpg 718w, https://depfields.com/wp-content/uploads/2020/05/step11-300x277.jpg 300w" sizes="(max-width: 569px) 100vw, 569px" /></figure>



<ol start="4" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>使用する対象のマイコン(MCU/MPU selectorタブ）を選択。<br>この例では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">STM32F103RB</span></strong>(LQFP64パッケージ)を選択</li></ol>



<figure class="wp-block-image size-large"><img decoding="async" width="780" height="545" src="https://depfields.com/wp-content/uploads/2020/05/step1a.jpg" alt="" class="wp-image-5000" srcset="https://depfields.com/wp-content/uploads/2020/05/step1a.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/step1a-300x210.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/step1a-768x537.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<ol start="5" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>プロジェクト名は任意のものをつけます(ここでは<strong>NUCLEO-F103RB</strong>)。プロジェクトにはファームウェアライブラリSPLをプラグインとして手動で追加する方式でコード自動生成は使わないのでTargeted Project Typeには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Empty</span></strong>を指定して「Finish」をクリック。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step2a.jpg" alt="" class="wp-image-5003" width="455" height="535"/></figure>



<ol start="5" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>新規プロジェクトフォルダ（この場合はNUCLEO-F103RB）が作成されました。あらかじめダウンロードしておいた<strong>ファームウェアライブラリSPL</strong>が含まれた<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Libraries</span></strong>フォルダをプロジェクト内にコピーしておきます。<strong>FreeRTOS（OS)</strong>を使用することも前提としているので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Source</span></strong>フォルダも同様にコピーしておきます（エクスプローラ等ファイルマネーファを使って）。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step3a.jpg" alt="" class="wp-image-5004" width="567" height="346" srcset="https://depfields.com/wp-content/uploads/2020/05/step3a.jpg 532w, https://depfields.com/wp-content/uploads/2020/05/step3a-300x184.jpg 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<ol start="6" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>アプリケーションプログラムや関連ヘッダファイル類は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Src</span></strong>フォルダに入れます。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step3a_2.jpg" alt="" class="wp-image-5005" width="572" height="371"/></figure>



<ol start="7" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>この段階でメニューバー「Project」-「Build All」で一度ビルドを実行します。<br>デフォルトのままですので、エラーもなく実行ファイルが作成され、<strong>追加したフォルダ等がプロジェクトに反映されている</strong>はずです。</li></ol>



<ol start="8" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>これで準備完了です。新規のプロジェクトは標準仕様でこのままでは追加したプラグイン（<strong>SPL</strong>と<strong>FreeRTOS</strong>）は<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>を設定したり、SPLを使えるための<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シンボルを指定</span></strong>したりします。</li></ol>



<h2 class="wp-block-heading">インクルードパス</h2>



<ol start="1" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>Project　Explorerで編集したいプロジェクトを指定してからメニューバー 「Project」–「Propaties」の順にクリックしてプロパティ画面を開きます。ここで左ペインの「<strong>C/C++ General</strong>」を開き、「<strong>Paths and Symbols</strong>」タブを選ぶとインクルードパスの設定画面になります。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step4.jpg" alt="" class="wp-image-1478" width="578" height="392" srcset="https://depfields.com/wp-content/uploads/2020/05/step4.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/step4-300x204.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/step4-768x521.jpg 768w" sizes="(max-width: 578px) 100vw, 578px" /></figure>



<ol start="2" class="vk_block-margin-sm--margin-bottom"><li>右の「<strong>Add</strong>」ボタンをクリックするとパスを指定するダイアログが現れます。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step4_1.jpg" alt="" class="wp-image-1480" width="578" height="400" srcset="https://depfields.com/wp-content/uploads/2020/05/step4_1.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/step4_1-300x208.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/step4_1-768x533.jpg 768w" sizes="(max-width: 578px) 100vw, 578px" /></figure>



<ol start="3" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>すべてチェックを入れて「<strong>Workspace</strong>」をクリックしてからプロジェクト内のパスを通していきます。以下のようにパスが通れば完了です。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step4a_2.jpg" alt="" class="wp-image-5019" width="796" height="580" srcset="https://depfields.com/wp-content/uploads/2020/05/step4a_2.jpg 796w, https://depfields.com/wp-content/uploads/2020/05/step4a_2-300x219.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/step4a_2-768x560.jpg 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<ol start="4" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>プロジェクトフォルダは　以下の通りです。</li></ol>



<figure class="wp-block-image size-large"><img decoding="async" width="705" height="542" src="https://depfields.com/wp-content/uploads/2020/05/step5a_1.jpg" alt="" class="wp-image-9529" srcset="https://depfields.com/wp-content/uploads/2020/05/step5a_1.jpg 705w, https://depfields.com/wp-content/uploads/2020/05/step5a_1-300x231.jpg 300w" sizes="(max-width: 705px) 100vw, 705px" /></figure>



<ol start="5" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>インクルードパスを設定したあとは「<strong>Source Location</strong>」タブで追加したプラグインフォルダの場所を指定しておきます。これを忘れると、ビルド時にエラーとなります。</li></ol>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/step6a.jpg" alt="" class="wp-image-5007" width="816" height="540"/></figure>



<ol start="6" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>最後に、ペリフェラルライブラリSPL内でMPUを指定したりする<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シンボル（Symbol）を登録</span></strong>します。下図のとおり、シンボルを追加してください。</li></ol>



<figure class="wp-block-image size-large"><img decoding="async" width="780" height="520" src="https://depfields.com/wp-content/uploads/2020/05/step7a.jpg" alt="" class="wp-image-4994" srcset="https://depfields.com/wp-content/uploads/2020/05/step7a.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/step7a-300x200.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/step7a-768x512.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">シンボルはそのまま"Name"のところに追加してください。<br>"Value"は空白のままにしておいてください。</p>



<ul class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li><strong>STM32F10X_MD</strong></li><li><strong>USE_STDPERIPH_DRIVER</strong></li></ul>



<figure class="wp-block-image size-large"><img decoding="async" width="634" height="352" src="https://depfields.com/wp-content/uploads/2020/05/step7a_1.jpg" alt="" class="wp-image-4995" srcset="https://depfields.com/wp-content/uploads/2020/05/step7a_1.jpg 634w, https://depfields.com/wp-content/uploads/2020/05/step7a_1-300x167.jpg 300w" sizes="(max-width: 634px) 100vw, 634px" /></figure>



<ol start="7" class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><li>以上でSTM32CubeIDEの開発環境設定は完了です。</li></ol>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p style="text-align: left;">当サイトで使用している教材ボードに搭載しているマイコンはSTMF1シリーズの<strong>STM32F103RB</strong>でMedium Desityバリューライン（MD)に属するため、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">シンボル</span></strong>に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">”STM32F10X_MD”</span></strong>を指定しています。他の市販ボードに搭載しているマイコンで<strong>STM32F103RB</strong>以外では<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">シンボルをマイコンの種類に相当するものに指定する必要</span></strong>があります。シンボルはペリフェラルライブラリのsystem_stm32f10x.cおよびstm32f10x.h内で定義され各マイコンの機能に合わせるために使用するものです。例えば、STM32F100RBを搭載したSTM32VLDISCOVERYではシンボル<strong>”<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">STM32F10X_MD_VL</span>”</strong>か<strong>”<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">STM32F10X_MD</span>”</strong>を、High-DensityパフォーマンスラインのSTM32F103VEを搭載したボードでは<strong>”<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">STM32F10X_HD</span>”</strong>を指定します。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></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>Cコードでのソース・ファイルが完成したあとは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ビルド(build)を行い、コンパイル・リンクを経て実行ファイルを作成</span></strong>します。<br>メニュー「Project」-「Build Project」の順にクリックすると実行ファイルまで作成してくれます。</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">コンパイルとはCコードで記述されたソース・ファイルをオブジェクトコードのファイルに変換すること</span></strong>です。変換されたファイルの拡張子は.oで、プロジェクト内の「Debug」フォルダ内に格納されます。</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>Binaries</strong>」フォルダが作成されて拡張子elfのファイルがあるはずです。同時に拡張子binのバイナリ実行ファイルも作成されています。ここまでくれば後はデバッガST-Linkでマイコンに実行ファイルを転送するだけです。</p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="780" height="659" src="https://depfields.com/wp-content/uploads/2020/05/step8a.jpg" alt="" class="wp-image-5008" srcset="https://depfields.com/wp-content/uploads/2020/05/step8a.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/step8a-300x253.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/step8a-768x649.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">初めてSTM32CubeIDEをインストールした場合は、このコンパイルの特性でint8_tとcharが異なりコンパイル時にwarningが発生することがあります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong>Warning : pointer targets in passing argument 1 of 'xxxx' differ in signedness</strong></p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">この警告は変数の符号が違うとコンパイラが判断するからです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">これはARM仕様のCMSISがISO C99に準拠した変数宣言の定義としており、通常のchar、intに対して変数のビット数まで明示的に宣言したもの（例えば、8ビット符号付きはint8_t、符号なしはuint8_t)であるからです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">int8_tの定義をsigned charでなくcharにすればよいのですが、これはツールチェイン（コンパイラ）の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">「machineフォルダ」</span></strong>内の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">_default_types.h</span></strong>内のものが最優先であるらしく、ここで定義している __INT8_TYPE__ がデフォルトでsigned charであることが問題の原因であることが判明しました。これを強制的にcharにするため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">#define __INT8_TYPE__&nbsp; char</span></strong>を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">_default_types.h</span></strong>内に追加します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="564" height="356" src="https://depfields.com/wp-content/uploads/2020/07/step8_2-2.jpg" alt="" class="wp-image-4527" srcset="https://depfields.com/wp-content/uploads/2020/07/step8_2-2.jpg 564w, https://depfields.com/wp-content/uploads/2020/07/step8_2-2-300x189.jpg 300w" sizes="(max-width: 564px) 100vw, 564px" /></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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ツールチェイン（コンパイラ）の<strong>「machineフォルダ」</strong>内の<strong>_default_types.h</strong>の場所<br>（デフォルトの場合）</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ST →STM32CubeIDE_xxx → STM32CubeIDE → Plugins→com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.0.0.201904181610→ tools → arm-non-eabi → include → machine →_default_types.h</p>



<figure class="wp-block-image size-large"><img decoding="async" width="682" height="496" src="https://depfields.com/wp-content/uploads/2020/07/step8_1.jpg" alt="" class="wp-image-4528" srcset="https://depfields.com/wp-content/uploads/2020/07/step8_1.jpg 682w, https://depfields.com/wp-content/uploads/2020/07/step8_1-300x218.jpg 300w" sizes="(max-width: 682px) 100vw, 682px" /></figure>



<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow"><div class="wp-block-group__inner-container"></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><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">ST-LINKデバイス</span></strong>を使用します。</p>
</div></div></div>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-26 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="331" height="318" data-id="1488" src="https://depfields.com/wp-content/uploads/2020/05/stlink_1.jpg" alt="" class="wp-image-1488" srcset="https://depfields.com/wp-content/uploads/2020/05/stlink_1.jpg 331w, https://depfields.com/wp-content/uploads/2020/05/stlink_1-300x288.jpg 300w" sizes="(max-width: 331px) 100vw, 331px" /><figcaption>ST-LINKデバイス1</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="294" height="349" data-id="1490" src="https://depfields.com/wp-content/uploads/2020/05/stlink_2.jpg" alt="" class="wp-image-1490" srcset="https://depfields.com/wp-content/uploads/2020/05/stlink_2.jpg 294w, https://depfields.com/wp-content/uploads/2020/05/stlink_2-253x300.jpg 253w" sizes="(max-width: 294px) 100vw, 294px" /><figcaption>ST-LINKデバイス2</figcaption></figure>
</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">ARM通信規格のSWD方式を採用</span></strong>しています。SWDとは2本の信号（SWCLKとSWDIO）でデータを書き込む方式です。</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">ST-LINK(V2)</span></strong>はPC側にはUSB、マイコン側にはSWDの信号線2本およびGNDの合計3本を接続すれば構成は完成です。ST-LINKはV1ではSTM32CubeIDEで機能しないため<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">V2以上が必要</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/05/program-transfer.jpg" alt="program transfer" class="wp-image-4981" width="478" height="114"/><figcaption>転送構成図</figcaption></figure>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">メニューバー「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Run</span></strong>」 - 「<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Debug</span></strong>」の順にクリックすると転送が開始されます。転送が始まるとST-LINKデバイスの赤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>以上で、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>なんらかの不具合には必ず原因</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>STM32CubeIDEの具体的な操作方法（コンパイラ・ビルドおよび転送方法）に関しましては、ここでは詳細は解説しませんが、これに関しましてはインターネットで豊富な情報がありますのでそちらを参考にしてください。STM32CubeIDE はeclipseベースですのでeclipse関連の情報が役に立つのではと思います。</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>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>当サイトで使用する<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">NUCLEO-F103RB</span></strong>やSTM32F100RBを搭載した<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">STM32VLDISCOVERY</span></strong>ボード等STマイクロエレクトロニクス社販売の評価ボードには<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">デバッガのST-Linkが付属</span></strong>していますので外付けでST-Linkを準備しなくてもUSBケーブルがあれば転送までできてしまいます。ST-Linkデバイスは他社のSTM32搭載ボードや新規に設計した自作マイコンボードに必要となります。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></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><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>もので例えばPCでVisual C#などをつかってアプリケーション開発を行う環境です。対して、<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>さまざまなCPUやOSが使用されるため<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 style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>プログラムを作成するPCを<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ホストコンピュータ</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>といいます。ターゲット用にプログラムをコンパイルするものを<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">クロスコンパイラ/アセンブラ/リンカ</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>、プログラムのパグ取りは<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> </p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"> 「<strong><a href="https://depfields.com/nucleo/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">マイコン学習の初心者にArduinoでなくSTM32Nucleoをすすめるわけ</a></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 class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">当サイトで紹介しているマイコン開発環境用ツールはフリーで提供しております。<br>ダウンロードするためにはお問い合わせフォームで登録してパスワードを取得してください。</p>



<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-vivid-red-background-color has-text-color has-background" href="https://depfields.com/contact/"><strong>お問い合わせはこちら</strong></a></div>



<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/environment/" 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/ce143bc5b5a4b11e9b6f7eb5a9a5be756025bec4a838af3379920e528283941c.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Recommended development environment for learning ARM STM32 [must see for begi...</div></div><div class="lkc-url">https://en.depfields.com/environment/</div><div class="lkc-excerpt">What is a suitable integrated development environment for ARM MCU (STM32) beginners to study?After choosing MCU to start learning about MCUs, the next challenge is about MCU development environment.What do I need to prepare</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/environment/">ARMマイコンSTM32の学習におすすめの開発環境【初心者必見】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコンの選択【電子工作用途でもARM(STM32)を選ぶべき理由】</title>
		<link>https://depfields.com/selection/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=selection</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 27 May 2020 05:43:50 +0000</pubDate>
				<category><![CDATA[組み込みに使われるマイコン]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=1383</guid>

					<description><![CDATA[<p>さまざまな種類のマイコン ARM Cortex-M3コア搭載マイコン ポイント ARMコアの中でも本サイトではCortex-M3コアを内蔵したSTマイクロエレクトロニクス社のSTM32シリーズのマイコンを採用しています。 [&#8230;]</p>
<p>The post <a href="https://depfields.com/selection/">マイコンの選択【電子工作用途でもARM(STM32)を選ぶべき理由】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="408" height="277" src="https://depfields.com/wp-content/uploads/2020/05/マイコン3.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/05/マイコン3.jpg 408w, https://depfields.com/wp-content/uploads/2020/05/マイコン3-300x204.jpg 300w" sizes="(max-width: 408px) 100vw, 408px" /></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>マイコンといっても8ビットでDIPタイプ（多数の金属製接続端子が下方へ伸びたタイプ）や32ビットの表面実装タイプなど性能、価格がさまざまな種類のものが数多くのメーカーから発売されています。</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>この中からどれを選ぶかは簡単な答えはないのですが、自分の目指している方向性に適しているマイコンを選択するのも一つの方法です。比較的単純なマイコン電子工作だけをしたいのならば8ビットのマイコンで十分で、シリアル通信や産業用モータドライブ、さらには将来的にIoTに発展させたい場合は高性能なマイコンが必要ではないでしょうか。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/マイコンの選択.jpg" alt="" class="wp-image-1385" width="406" height="171" srcset="https://depfields.com/wp-content/uploads/2020/05/マイコンの選択.jpg 509w, https://depfields.com/wp-content/uploads/2020/05/マイコンの選択-300x127.jpg 300w" sizes="(max-width: 406px) 100vw, 406px" /><figcaption class="wp-element-caption">いろいろなマイコン</figcaption></figure>



<h2 class="wp-block-heading">ARM Cortex-M3コア搭載マイコン</h2>



<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>マイコンに興味があって電子工作をしながらマイコンを学ぶ人であれば組み込み機器でも大きなシェアを占めているARMコアからはじめることを強くお勧めします。組み込みスキルを身につけてから活躍の場を求める時に、国内にとどまらず海外にも可能性があるのは世界標準であるARMコアを扱うスキルであるからです。</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>を取り上げています。いろいろな産業分野でのアプリケーションに応用できるのはもちろん趣味でいろいろな技術（通信系やモータコントロールなど）に挑戦するにも最適なマイコンです。<br>（学習をはじめるのならばはじめの敷居は高いようですが<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-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">ARMのCortex-M3コアを内蔵したマイコン</span></strong>です。ARMという名前だけでも耳にしたことがあるのではないでしょうか。ARMコアはARM社（英国）が提供するアーキテクチャをもつCPUコアで今やマイコンの世界ではもっともシェアを占めています。PCの世界では依然としてIntel社のコアが強いですがスマホ・タブレットの世界で大半を占めているのみならず<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">組み込み機器でも大きなシェアを占めているのがARMコア</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">主流であるARMコアを学ぶのは当然有利</span></strong>です。組み込みスキルを身につけてから活躍の場を求める時に、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">国内にとどまらず海外にも可能性があるのはやはり世界標準であるARMコアを扱うスキル</span></strong>でしょう。実際に業務で使用するマイコンは他のタイプになることは多いと思いますがARMコアは特別なアーキテクチャではないため<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-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></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>ARMコアの中でも本サイトでは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">Cortex-M3コアを内蔵したSTマイクロエレクトロニクス社のSTM32シリーズのマイコン</span></strong>を採用しています。<strong>ARMマイコンのなかでも特に情報が多いから</strong>です。STM32マイコンシリーズには上位モデルに浮動小数点プロセッサ付きCortex-M4コアのハイパフォーマンスモデルSTM32F4シリーズなどがありますが、ARMマイコンの入門にはベースモデルの<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">STM32F1シリーズが最適</span></strong>だと考えます。</p>
</div>
<p> </p>



<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="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">STM32マイコン</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>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/stm32_board-1.jpg" alt="" class="wp-image-6255" width="522" height="398" srcset="https://depfields.com/wp-content/uploads/2020/05/stm32_board-1.jpg 693w, https://depfields.com/wp-content/uploads/2020/05/stm32_board-1-300x229.jpg 300w" sizes="(max-width: 522px) 100vw, 522px" /><figcaption class="wp-element-caption">STM32マイコン</figcaption></figure>



<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 vk_block-margin-sm--margin-top"><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>ST（STマイクロエレクトロニクス）社で取り扱うマイコンの開発を行うにあたって、ほしい情報は世界を含めて極めて多く、<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">体型よくまとめたものをC言語で利用できるようになったライブラリ</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>のです。</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><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-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">内容をたどって理解することはプログラミングのスキルをあげるのにも参考になります</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>話はファームウェアライブラリのほうへそれましたが、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>採用マイコンは高機能であるゆえに設定項目も多いですが必要に応じて選択できます。搭載されている機能を習得すればほぼ大部分のアプリケーションに応用つまりつぶしがきくようになります。 <br>それではSTM32シリーズのマイコンを手にして組み込みの世界に入っていきましょう。</p>
</div></div></div>



<p>「<strong><a href="https://depfields.com/nucleo/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">マイコン学習の初心者にArduinoでなくSTM32Nucleoをすすめるわけ</a></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 class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p>本サイト記載の社名、製品名について：<br>本サイトに記載されている社名および製品名は一般に開発メーカーの登録商標または商標です。本文中では&#x2122;　®　©の各表記を明記していません。</p>



<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/selection/" 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/4af34572a63bdef737bafc2cd64708bb34414a1e70a597cc75cccb11de9eebeb.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Microcontroller Selection [Why ARM (STM32) should be chosen even for electron...</div></div><div class="lkc-url">https://en.depfields.com/selection/</div><div class="lkc-excerpt">Various types of microcontrollersA wide variety of MCUs are available from many manufacturers, including 8-bit DIP types (with many metal connection terminals extending downward) and 32-bit surface-mount types, with varying leve</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/selection/">マイコンの選択【電子工作用途でもARM(STM32)を選ぶべき理由】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ARM(STM32)の基礎と開発入門【ARM初心者の効果的な勉強方法】</title>
		<link>https://depfields.com/embedded/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=embedded</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Wed, 06 May 2020 13:47:50 +0000</pubDate>
				<category><![CDATA[組み込みマイコンスキル全般]]></category>
		<category><![CDATA[STM32CubeIDE]]></category>
		<category><![CDATA[STM32]]></category>
		<category><![CDATA[index]]></category>
		<guid isPermaLink="false">https://depfields.com/?page_id=199</guid>

					<description><![CDATA[<p>「ARM(STM32)の基礎と開発入門」では組み込みマイコンにARMコアを搭載したSTマイクロエレクトロニクス社のSTM32F1xxシリーズ（Cortex-M3)をベースに解説を行っています。このマイコンを使いこなす上で [&#8230;]</p>
<p>The post <a href="https://depfields.com/embedded/">ARM(STM32)の基礎と開発入門【ARM初心者の効果的な勉強方法】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img width="1024" height="575" src="https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920-1024x575.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920-1024x575.jpg 1024w, https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920-300x169.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920-768x432.jpg 768w, https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920-1536x863.jpg 1536w, https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920-320x180.jpg 320w, https://depfields.com/wp-content/uploads/2020/05/circuit-1441018_1920.jpg 780w" sizes="(max-width: 1024px) 100vw, 1024px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">「ARM(STM32)の基礎と開発入門」</span></strong>では組み込みマイコンにARMコアを搭載したSTマイクロエレクトロニクス社のSTM32F1xxシリーズ（Cortex-M3)をベースに解説を行っています。このマイコンを使いこなす上で必須な<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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">このように書き出してみるとすべてを習得するのは大変そうですが、順次に学習を進めていけば身につくと思います。<br>それでは組み込みの世界に入っていきましょう。</p>







<h2 class="wp-block-heading">組み込みに使われるマイコン</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">この章では組み込み技術のコア部分である<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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">組み込みシステムといえば何を思い浮かべるでしょうか。</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>組み込みシステムとはPC、タブレットなど汎用的なコンピュータシステムに対して各種機器に組み込まれる機能を特化した<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>



<ul>
<li>家電製品（冷蔵庫、洗濯機、シーリングライトなど）</li>



<li>AV機器（テレビ、ビデオ、オーディオなど）</li>



<li>通信機器（スマホ、固定電話など）</li>



<li>運輸機器（自動車、電車など）</li>



<li>FA機器（工業用ロボット、搬送装置(PLC)など）</li>



<li>娯楽機器（ゲーム機、パチンコなど）</li>



<li>OA機器（プリンタ、スキャナ、コピー機など）</li>



<li>計測器（オシロスコープ、電力メーター、ガスメーターなど）</li>
</ul>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2020/05/組み込み機器.jpg"><img decoding="async" width="354" height="409" src="https://depfields.com/wp-content/uploads/2020/05/組み込み機器.jpg" alt="" class="wp-image-850" srcset="https://depfields.com/wp-content/uploads/2020/05/組み込み機器.jpg 354w, https://depfields.com/wp-content/uploads/2020/05/組み込み機器-260x300.jpg 260w" sizes="(max-width: 354px) 100vw, 354px" /></a></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>小さいものから大きいものまで現在の電気機器には組み込み技術はほぼすべて導入されているのではないでしょうか。むしろ、組み込み技術の導入されていない機器のほうが珍しいくらいです。</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>とは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">マイコン(マイクロコントローラ)を搭載した回路</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>しながら機器への出力を制御して<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">特化した機能を実現するコンピュータシステム</span></strong>のことをいいます。<br>マイコンということばがでてきましたがこれについては後ほど詳しく説明していきます。</p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2020/05/組込みシステム.jpg"><img decoding="async" width="546" height="278" src="https://depfields.com/wp-content/uploads/2020/05/組込みシステム.jpg" alt="" class="wp-image-875" srcset="https://depfields.com/wp-content/uploads/2020/05/組込みシステム.jpg 546w, https://depfields.com/wp-content/uploads/2020/05/組込みシステム-300x153.jpg 300w" sizes="(max-width: 546px) 100vw, 546px" /></a></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">ハードウェアとはスイッチや電気・電子回路といった目に見える物理的なもの</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>でハードウェアを制御するためにいろいろな機能を構成したものです。物理的に目に見えるものではありません。</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><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-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 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>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/組み込み技術とは.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/組み込み技術とは.jpg" alt="" class="wp-image-868" width="461" height="303" srcset="https://depfields.com/wp-content/uploads/2020/05/組み込み技術とは.jpg 608w, https://depfields.com/wp-content/uploads/2020/05/組み込み技術とは-300x197.jpg 300w" sizes="(max-width: 461px) 100vw, 461px" /></a></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>だからです。</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>ので恐れることはないのです。</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></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>でしょう。</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>ものです。</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><a href="https://depfields.com/controltheory/" target="_blank" rel="noreferrer noopener" title="制御入門【ARMマイコンでの実践】">制御工学（フィードバック制御）</a></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>のです。専門性を高めたい場合はある程度の経験をつんで基本原理が理解できてからのほうがよいでしょう。</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>。</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>。</p>
</div></div></div>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">組み込み技術に興味がある人にとって<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">きっかけとなるマイコン選びは大切</span></strong>なのですが、当サイトで採用しているシステムを使って学習をしていくと効率よく着実にスキルが身についていきます。マイコンに触れるきっかけとなるシステムには電子工作で大人気の<strong>Arduino</strong>やARM開発環境で注目の<strong>Mbed</strong>などがありますが当サイトではマイコン学習用にカスタマイズしたシステムを「<strong><a href="https://depfields.com/nucleo/" target="_blank" rel="noreferrer noopener" title="マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ">マイコン学習の初心者にArduinoでなくSTM32Nucleoをすすめるわけ</a></strong>」で紹介していますのでご参考ください。</p>



<h3 class="wp-block-heading">マイコンとは&nbsp;</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/what-mc" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.23</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/マイコン０-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みシステムに使われるマイコンとは</div></div><div class="lkc-url">https://depfields.com/what-mc</div><div class="lkc-excerpt">組み込みシステムを習得するにはそこに使われるマイコンを使いこなす知識・経験を身につけることが大切です。この章ではマイコンの基本構成および用途について解説しています。マイコンの基本構成マイコンとは一つのICチップの中に、CPUをはじめ、メモリ、入出力回路および周辺機能が詰め込まれたものでワンチップマイコンとも呼ばれています。マイコンめかのとろそもそもマイコンなる名称はかつてPCが現代ほど普及していない時代にスーパーコンピュータなど大型コンピュータに対して呼ばれた「マイクロコンピュータ」の略からついたも...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコン組み込み技術を学ぶ前に知っておくべきこと</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/background" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">2 Pockets</div></div><div class="lkc-date">2020.05.24</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/stm32_board-1-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みエンジニアのためのマイコン周辺の基礎知識【初心者必見】</div></div><div class="lkc-url">https://depfields.com/background</div><div class="lkc-excerpt">マイコン周辺のハードとソフトマイコン自体はどんな構成でどのような機能をもったものでしょうか。めかのとろコンピュータが存在する以前の世界は身の回りはハードウェアばかりでした。電気製品においてもテレビなどは機能をすべて電気・電子回路のハードウェアで構成していました。自動車においてもそうです。すべて機械部品のハードウェアで構成されていました。めかのとろコンピュータが登場して、ソフトウェアという概念ができました。コンピュータは自然界のアナログ的（物理的）なもの、例えば光の強さや音の大きさなどをセンサ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコンの選択</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/selection" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.27</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/マイコン3-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンの選択【電子工作用途でもARM(STM32)を選ぶべき理由】</div></div><div class="lkc-url">https://depfields.com/selection</div><div class="lkc-excerpt">さまざまな種類のマイコンめかのとろマイコンといっても8ビットでDIPタイプ（多数の金属製接続端子が下方へ伸びたタイプ）や32ビットの表面実装タイプなど性能、価格がさまざまな種類のものが数多くのメーカーから発売されています。めかのとろこの中からどれを選ぶかは簡単な答えはないのですが、自分の目指している方向性に適しているマイコンを選択するのも一つの方法です。比較的単純なマイコン電子工作だけをしたいのならば8ビットのマイコンで十分で、シリアル通信や産業用モータドライブ、さらには将来的にIoTに発展させたい場...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">開発環境・ツール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/environment" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">3 Pockets</div></div><div class="lkc-date">2020.05.27</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARMマイコンSTM32の学習におすすめの開発環境【初心者必見】</div></div><div class="lkc-url">https://depfields.com/environment</div><div class="lkc-excerpt">ARMマイコン(STM32)初心者が勉強するのに適した開発環境とはめかのとろマイコンの学習を始めようとしてマイコンを選択した後の課題がマイコンの開発環境についてです。プログラムを作成するために何を準備すればいいのでしょうか。作成したプログラムが動作するマイコンと周辺回路搭載のハードウェア（インターフェース）はどうすればいいでしょうか。作成したプログラムをマイコンに転送するためのツールはどうすればいいのでしょうか。めかのとろ具体的には以上のことではないでしょうか。筆者も組み込みを始めた当初、マイコンをSTM...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">教材ボードについて</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/board" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.28</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/nureo-f103rb-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARMで電子工作しながら学習するのにお勧めNucleo開発ボード</div></div><div class="lkc-url">https://depfields.com/board</div><div class="lkc-excerpt">STM32マイコン搭載のNucleoボードを教材に使用する理由めかのとろマイコンの学習にあたって、一番の近道は自分で実際にマイコンを操作して、動作を確認しながら行うことです。当サイトで解説しているものと同じ動作環境であれば、特に初心者が最も苦労し、時間を要する実装への試行錯誤の行程を大幅に短縮できすぐにでも実機にて学習を開始できますので、マイコンの操作は最短期間で身につけることができるようになっています。めかのとろ当サイトで教材として使用するボードはARM Cortex-M3コアSTM32F103RBを搭載したNUCLEO-F103RBで...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコンとC言語</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/c-language" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.29</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/coding-1853305_1920-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARMマイコンと組み込みプログラミングにおけるC言語のツボ</div></div><div class="lkc-url">https://depfields.com/c-language</div><div class="lkc-excerpt">C言語はやさしい！？めかのとろ今の世の中ではさまざまなプログラミング言語が存在しています。その中でC言語は比較的歴史が長いのですが、廃れることなくいまでも組み込みでの開発言語として現役で使用されています。めかのとろ他のプログラム言語に比べて、コードが軽くリアルタイムの制御に向いているなどの利点に加え、歴史が長い分、これまでの資産が豊富にあることもいまでの現役である理由でしょう。めかのとろARMマイコンにはC言語は必須です。総合開発環境にもC言語やC++が標準です。C言語の歴史は古い分、成熟したプログラム...</div></div><div class="clear"></div></div></a></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>。<br>ここから一人でも多くの組み込みエンジニアが育っていくことを願っており、支援できればとおもっています。</p>
</div>



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



<h2 class="wp-block-heading">組み込み技術の基本</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">この章では組み込み技術を学ぶにあたって<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>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンを学習する前に予備知識は何か必要なのでしょうか。</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>これまではこれまではマイコンの概念やマイコン開発のための具体的な内容を中心に話をすすめてきました。<br>これからマイコンについて本格的に学ぶにあたって、<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>といわれるその部分のことですのでとても重要なところです。例えば、マイコンで信号をやり取りするIOポートの回路がどのような構成でどのような種類の信号が扱われるかといったところです。</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">具体的に<a href="https://depfields.com/mc-circuit/" target="_blank" rel="noreferrer noopener" title="マイコン周辺のハードウェア基本回路【初心者・未経験者必見】">回路や周辺ハードウェア</a>を理解する必要があります</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"><a href="https://depfields.com/analog-digital/" target="_blank" rel="noreferrer noopener" title="マイコンで扱うアナログとは？デジタルとは？【まずはここから】">アナログとデジタルに関する理解</a>も大事です</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>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2020/05/micon_sysytem.jpg"><img decoding="async" width="780" height="249" src="https://depfields.com/wp-content/uploads/2020/05/micon_sysytem.jpg" alt="" class="wp-image-1069" srcset="https://depfields.com/wp-content/uploads/2020/05/micon_sysytem.jpg 780w, https://depfields.com/wp-content/uploads/2020/05/micon_sysytem-300x96.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/micon_sysytem-768x245.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></a><figcaption class="wp-element-caption">マイコンシステム</figcaption></figure>



<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>マイコンの理解がすすみ、実際の開発において<a href="https://depfields.com/hardware-design/" target="_blank" rel="noreferrer noopener" title="組み込みハードウェア設計【具体的な回路を紹介】"><strong>インターフェースの設計</strong></a>はとても重要です。マイコン周辺は電気・電子回路で構成することになるのですが、設計に不備があると機能しないだけでなく壊れてしまいます。と、いうと構えてしまいそうですが、<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-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>です。短絡や電源極性を逆に接続すると過電流が生じ異常発熱して破壊にいたります。こういった事故の確率を少しでも減らすために保護回路を付けるのです。</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">入出力信号の応答に十分対応できる応答速度のものを選定</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>



<h3 class="wp-block-heading">アナログとデジタル</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/analog-digital" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.30</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/record-player-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンで扱うアナログとは？デジタルとは？【まずはここから】</div></div><div class="lkc-url">https://depfields.com/analog-digital</div><div class="lkc-excerpt">マイコンを扱ううえでまず始めに理解したい概念がアナログとデジタルです。アナログとデジタルは何がどうちがうのか、意外と説明できないひとも多いのではないのでしょうか。この章ではマイコンを扱う上でもとても大切な両者の概念をわかりやすく解説しています。アナログとはめかのとろアナログとは連続した物理的な量のことをいいます。例えば自然界の音や光の強さなどは連続したアナログ量です。これらの量を電気的に変換して観測すると連続した波形となっています。めかのとろ一昔前のレコードやカセットテープはアナログの典型的...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">デジタルの詳細</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/digital-basics" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.30</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/compact-disc-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">デジタルの詳細【マイコンプログラミングに必須】</div></div><div class="lkc-url">https://depfields.com/digital-basics</div><div class="lkc-excerpt">デジタルの基本めかのとろさきほどデジタルの話で標本化、量子化、符号化の話がでてきました。ここでは詳細を解説します。デジタルとは端的に表現すると情報をとびとびの離散した値による符号にして表現したものです。めかのとろアナログ信号からデジタル信号をつくるためにはAD（Analog-Digital）変換を通して数値を時間軸で刻んでサンプリング（標本化ともいう）し、信号の大きさ（信号の振幅）を離散的な数値に刻むことを量子化といいます。その数値を2進数の0と1に変換することを符号化といいます。標本化時間方向でとびとびの値を...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコンのビット数</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/mc-bit" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.31</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/797484_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンのビット数と使い分け</div></div><div class="lkc-url">https://depfields.com/mc-bit</div><div class="lkc-excerpt">マイコンのビットとはめかのとろマイコンには８ビットでは現ルネサス社のH8シリーズ、16ビットでは電子工作で人気のMicrochip社のPIC24Fシリーズ、そして32ビットではARMコアのをもつST社のSTM32シリーズなどがあります。めかのとろ8ビットマイコン、16ビットマイコン、32ビットマイコンとありますが、このビットはなにを意味しているのでしょうか。めかのとろ一言でいうと一度に処理できるデータ（バス）の幅のことです。マイコンのビット数めかのとろマイコンを構成している大要素としてCPU、メモリ、I/Oがあります。このうち頭脳部...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">ビット、バイト、ワードとデジタル論理について</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/digital-logic" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.05.31</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/1140762_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ビット、バイト、ワードとデジタル論理【マイコンプログラミングに必須】</div></div><div class="lkc-url">https://depfields.com/digital-logic</div><div class="lkc-excerpt">マイコンプログラミングにおいてはデータの四則演算以外にビット演算をよく使います。マイコンスキルが上達してマイコンのレジスタを直接設定する場合には特にビット、バイト、ワードの概念は欠かせません。この章ではデジタル論理についての基礎的な解説をおこなっていますのでしっかり理解してください。ビット、バイト、ワードめかのとろビットとは2種類の状態（0と1）によって区別するデータ量の単位で、1ビットデータは0と1でOFFとON状態の区別表現ができます。&nbsp;マイコン内部では数値は2進数で扱われます。2進数の桁数のこと...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコン周辺に使用する基本回路</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/mc-circuit" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.01</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/testing-circuit-1468062_1920-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコン周辺のハードウェア基本回路【初心者・未経験者必見】</div></div><div class="lkc-url">https://depfields.com/mc-circuit</div><div class="lkc-excerpt">マイコンの入出力回路を取り扱うのに必須の基礎知識をまとめています。電気回路とオームの法則めかのとろマイコン周辺で使用する電気回路は直流回路ですのでそれほど難しくなく、オームの法則を知っていれば理解できるものです。ただし、教科書に記載している回路とは多少表記の仕方が違うためまず慣れる必要はあります。めかのとろ回路は当然すべてつながっているのですが、表記では電源電圧とグランド(GND)を分離した略図で表記しています。電源電圧から何らかの回路（負荷）を通ってグランド（GND）に戻っていくのを連続で繰り返し...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">パルスについて</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/digital-pulse" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.01</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/クロック-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンで使うパルスについて【制御系では必須】</div></div><div class="lkc-url">https://depfields.com/digital-pulse</div><div class="lkc-excerpt">ハードウェアとパルスめかのとろパルスはハードウェアの回路に密着した技術といえます。組み込みエンジニアで制御系を扱う場合は特にパルス信号を扱う機会が多いために、トランジスタ等ハードウェア回路がどのようにしてパルスの発生させるかの仕組みを理解することが大切です。めかのとろパルスは典型的なデジタル信号で振幅は一定で時間軸のON/OFF期間が固定であったり、可変であったりするものです。外部スイッチのON/OFF入力も、外部へのON/OFF出力もマイコンからみるとパルスなのです。めかのとろパルスを自由に使いこなすことは...</div></div><div class="clear"></div></div></a></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>



<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>です。<br>抽象的な概念でなく<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">具体的で実践で使用する回路で学習すること</span></strong>が理解への近道です。<br>当サイトではマイコンを理解するうえで必須な回路基礎をかみ砕いて解説していますのでしっかり学習してください。</p>
</div>
<p>&nbsp;</p>



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



<h2 class="wp-block-heading">マイコンの周辺機能(ペリフェラル)とは</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">マイコンに内蔵している周辺機能（ペリフェラル）とはどのようなものでしょうか。</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>マイコンにはCPU、ROM、RAM、I/Oそしてペリフェラルと呼ばれるメーカー独自の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://depfields.com/category/learning/embedded/peripheral-detail/" target="_blank" rel="noreferrer noopener" title="各周辺機能(ペリフェラル)詳細">周辺機能</a></span></strong>が内蔵されています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg" alt="" class="wp-image-1076" width="436" height="436" srcset="https://depfields.com/wp-content/uploads/2020/05/micon_architecture.jpg 520w, https://depfields.com/wp-content/uploads/2020/05/micon_architecture-300x300.jpg 300w, https://depfields.com/wp-content/uploads/2020/05/micon_architecture-150x150.jpg 150w" sizes="(max-width: 436px) 100vw, 436px" /></a><figcaption class="wp-element-caption">マイコンアーキテクチャ</figcaption></figure>



<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>



<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>CPUは中央演算処理装置(<strong>C</strong>entral <strong>P</strong>rocessing <strong>U</strong>nit)と呼ばれマイコンの中での司令塔つまり頭脳の役割をしています。作成したプログラムにしたがって順次命令を実行し、入力ポートのデータを読み込んだり、周辺機能の通信機能でモニター表示をだしながら、タイマーで計測した間隔で出力ポートへ信号をだしたりします。</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>マイコンには、このようにタイマ、通信、AD・DAコンバータなど家電やスマホをはじめとする電気機器や通信機器などで必須の周辺機能が盛り込まれています。内蔵されている周辺機能の種類はマイコンにもよりますが、基本的に<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>タイマ機能</strong>、<strong>ADコンバータ</strong>、<strong>シリアル通信UART</strong></span>そして<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>



<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>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/system_old.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/system_old.jpg" alt="" class="wp-image-1100" width="372" height="269" srcset="https://depfields.com/wp-content/uploads/2020/05/system_old.jpg 372w, https://depfields.com/wp-content/uploads/2020/05/system_old-300x217.jpg 300w" sizes="(max-width: 372px) 100vw, 372px" /></a><figcaption class="wp-element-caption">一昔前のシステム</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>はじめにシステムの設計を将来的な仕様変更なども見越してきっちりとしたものにしておけば後々にはソフトウェアの変更で色々な機能変更などが簡単にできてしまいます。周辺回路をハードウェアで構成していたころからは考えられない便利さです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/system_now.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/system_now.jpg" alt="" class="wp-image-1101" width="395" height="338" srcset="https://depfields.com/wp-content/uploads/2020/05/system_now.jpg 313w, https://depfields.com/wp-content/uploads/2020/05/system_now-300x257.jpg 300w" sizes="(max-width: 395px) 100vw, 395px" /></a><figcaption class="wp-element-caption">マイコン内蔵の組込みシステム</figcaption></figure>



<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="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/firmware" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.01</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/old-books-436498_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARMマイコンSTM32の周辺機能とファームウェアライブラリとの関連</div></div><div class="lkc-url">https://depfields.com/firmware</div><div class="lkc-excerpt">ファームウェアの役割とはめかのとろマイコンにはさまざまな周辺機能（ペリフェラル）が内蔵されています。代表的なものに汎用入出力GPIOがありますがマイコンの各ピンに入出力の機能詳細を定義するためにはGPIO制御レジスタを設定する必要があります。めかのとろマイコンのリファレンスマニュアルにはレジスタ詳細について記述されていますが、このマニュアル通りにレジスタ設定のプログラムを作成していくことは慣れているひとでも大変です。マイコンを使った組み込みエンジニアはアプリケーション作成が重要なのであって、各社種々...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">ペリフェラルライブラリ</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/library" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.03</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/books-2596809_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARMマイコンSTM32F1シリーズのペリフェラルライブラリ</div></div><div class="lkc-url">https://depfields.com/library</div><div class="lkc-excerpt">マイコンのペリフェラルめかのとろ仕様書にある周辺機能（ペリフェラル）の制御レジスタを簡単に設定できるようなドライバがペリフェラルライブラリです。これ以降、実際に当サイトでとりあげるマイコンをもとに具体的な解説をすすめていきます。以後周辺機能はペリフェラルと呼びます。めかのとろターゲットマイコンのモデルタイプはARM　Cortex-M3マイコンのSTM32F103RBです。STM32F103RBマイコンの仕様表を示します。このマイコンはシリーズのミディアムパフォーマンスラインモデルです。STM32F103RB仕様めかのとろSTM32F103RBマイ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">レジスタマップの見方</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/register-map" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.03</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/board-2440249_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ARMマイコンSTM32レジスタマップの見方【上級者向け】</div></div><div class="lkc-url">https://depfields.com/register-map</div><div class="lkc-excerpt">レジスタマップめかのとろペリフェラルライブラリだけを使用する場合はレジスタマップを意識する必要はありませんが、マイコンのレジスタがライブラリ内でどのように操作されているか理解することはマイコンのスキルアップにつながります。めかのとろ見方を変えると、ライブラリを使用しないでレジスタを操作できるようなレベルになると、各マイコンメーカーの提供するライブラリやツールに頼ることなしに開発ができるので最強です。めかのとろここではペリフェラルライブラリがどのようにペリフェラルの制御レジスタを操作しているか...</div></div><div class="clear"></div></div></a></div></div>



<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 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>になっています。<span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b"><strong>実際にものを機能</strong></span><strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">さ</span></strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b"><strong>せる技能</strong></span><strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">が組み込み技術に必要</span></strong>なものであって、WEBエンジニアなどソフトウェアのみを扱うものとは異なるのです。</p>
</div>



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



<h2 class="wp-block-heading">各周辺機能(ペリフェラル)詳細</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">各ペリフェラルを使いこなすために<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 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>この章ではいよいよ、STM32F1xxシリーズ（Cortex-M3)に備わっている各ペリフェラルの詳細を解説していきます。</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マイコンは高機能のマイコンですが、すべての機能を理解したり、使いこなす必要はありません。<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">STM32に備わっている周辺機能（ペリフェラル）をある程度は理解しておくことが必要</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">ADコンバータ</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>実際の動作は「<a href="https://depfields.com/applications/" target="_blank" rel="noreferrer noopener" title="マイコンプログラム例と実践【ARMの電子工作にも役に立つサンプル例】"><strong>マイコンプログラム例と実践</strong></a>」でサンプルプログラムに従って確認できます。</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">これだけ一通りおさえておけば大概の<strong>組み込みの</strong>仕事ができるといったものを抜粋したもの</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>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><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ライブラリがSPL(Standard Peripheral Library)でもHAL(Hardware Absolute Layer)でも同じこと</span></strong>です。つまり、とりあえず当サイトで採用しているライブラリSPLで機能を理解するとマイコン機能の本質を理解することになるので、当然将来HALへの移植も問題ないでしょう。もちろん<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>



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



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/gpio" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.04</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/smart-home-3396205_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">汎用入出力【STM32のGPIO使い方詳細 】</div></div><div class="lkc-url">https://depfields.com/gpio</div><div class="lkc-excerpt">STM32マイコンの汎用入出力GPIOの使い方を詳細に解説しています。ペリフェラルの中で最も基本で使用頻度の高いGPIOを使いこなせるようになることはプログラミングだけでなくインターフェースを構成している電子回路の理解も必要なため、STM32マイコン操作の勘所を理解することでもあります。汎用入出力GPIOとはめかのとろ汎用入出力はGPIO(Genaral Purpose Input/Output)ともいい、ソフトウェアで任意に入出力を制御できるポート（ピン）です。ピンに入力された信号を情報としてCPUに取り込んだり、マイコン内のCPUから端子に信号を出...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">システムクロック</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/sysclk" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.04</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/clock-691143_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">システムクロック【STM32のSYSCLK設定詳細 】</div></div><div class="lkc-url">https://depfields.com/sysclk</div><div class="lkc-excerpt">システムクロックはマイコン固有のものですので一度設定すると変更するものではありませんが、しっかり理解することで他のマイコンへの応用ができるようになります。マイコンのクロックめかのとろこの章では水晶振動子などの発振器で発生したクロック信号をもとにしてマイコンの動作周波数となるシステムクロックの作成の仕方、各ペリフェラルに供給するクロックの設定について解説します。めかのとろクロックとは組み込み技術の基本の章で説明しましたがマイコンのCPUを始めとし、すべての回路のタイミングとなるパルス信号のことです...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">システムタイマ</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/systimer" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.05</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/stopwatch-2624277_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">システムタイマ【STM32のSysTickタイマ詳細】</div></div><div class="lkc-url">https://depfields.com/systimer</div><div class="lkc-excerpt">めかのとろシステムタイマはSysTickタイマと呼ばれARM Cortex-M3シリーズにCPUコアの一部として備えているシンプルなタイマです。次章で解説するペリフェラルの汎用タイマはとても高機能ですが反面、設定も多岐項目にわたるため、設定も多岐項目にわたるため、ちょっとした用途にはSysTickタイマを使うと便利です。めかのとろSysTickタイマはSTMマイコンのAHBクロックHCLKをカウントします。SysTickタイマはダウンカウンタで値を設定するとカウントダウンしていき、0に到達すると次のカウントで割り込みを発生しカウンタ値を設定値に戻...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">タイマ・カウンタ</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/timer" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.05</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/abacus-1866497_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">タイマ・カウンタ【STM32の高機能・汎用タイマ詳細】</div></div><div class="lkc-url">https://depfields.com/timer</div><div class="lkc-excerpt">マイコンのタイマ・カウンタは外部から与えた入力パルス数のカウント、入力パルス周波数の計算、任意の周波数パルス出力、PWMパルスの出力、そしてパルス以外では時間計測などタイマ・カウンタを組み合わせた用途は広いです。STM32のタイマ・カウンタペリフェラルはとても多機能ですべてを理解するのは大変ですがこのサイトでは最も実用的な機能を抜粋して解説しています。タイマ・カウンタの基本動作からタイマを利用したさまざまな出力の仕方を解説しています。ライブラリはSPLを使用していますが基本動画が理解できれば将来的にHAL...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">さまざまな割り込み</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/interrupt" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.06</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/2783744_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">さまざまな割り込み【STM32の割り込み詳細】</div></div><div class="lkc-url">https://depfields.com/interrupt</div><div class="lkc-excerpt">ハードウェアを制御する組み込みプログラミングでは割り込み処理を避けては通れないでしょう。STM32マイコンの割り込み処理はARMコアCortex-M3のルールに基づいているため、ルールの仕組みを理解して割り込み処理設定や処理内容を記述する必要があります。この章ではARMコアCortex-M3特有の割り込みについてプログラム例を使用して解説しています。割り込みとはめかのとろシステムクロックタイマの章でも割り込みが登場しましたが、この章ではSTM32マイコンで扱う割り込みを解説します。割り込みとは実行中のプログラムを一時中断して...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">ADコンバータ</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/adc" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.07</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/podcast-4209770_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ADコンバータ【STM32のADコンバータ詳細】</div></div><div class="lkc-url">https://depfields.com/adc</div><div class="lkc-excerpt">STM32マイコンのADコンバータはとても高機能なために、初心者・入門者は単純なものから順に理解しながらステップアップしていくのがよいと思われます。この章では1チャンネルのアナログ入力を必要なときだけ手動で取得するシングルモード変換方式から複数チャネルのアナログ入力を連続して自動取得してDMA送信でメモリに転送する方式までを解説しています。STAM32のADコンバータめかのとろマイコンにはADコンバータ（AD変換器）が内蔵されていて、アナログ信号をマイコンに取り入れてデジタル信号に変換することができます。STM32のAD...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">シリアル通信USART</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/usart" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.08</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/serial-cable-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">シリアル通信USART【STM32のUSART詳細】</div></div><div class="lkc-url">https://depfields.com/usart</div><div class="lkc-excerpt">シリアルUSART通信は将来IoTにも応用できるペリフェラルなのでできるだけ早期に習得してもらいたいものです。USARTはペリフェラルとしては機能の設定は比較的単純なのですが、文字列を扱うもののため使いこなすにはC言語のプログラミングのチカラが必要です。1文字の受信から文字列送受信のDMA転送までステップ毎に解説しています。このサイトで紹介しているシリアルモニターを早めに導入（モニターデバッグを参照）してC言語プログラミングのスキルをあげるにも役立ててください。USARTとはめかのとろUART(Universal Asynchronous Rec...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">シリアル通信I2C</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/i2c" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.08</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/2760625_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">シリアル通信I2C【STM32のI2C詳細】</div></div><div class="lkc-url">https://depfields.com/i2c</div><div class="lkc-excerpt">STM32に内蔵のペリフェラルI2Cの使い方を解説しています。この章ではI2C仕様のEEPROMへのデータの読み込および書き込を例に解説しています。シリアル通信I2Cとはめかのとろシリアル通信I2Cは同期型の双方向通信です。Philips社が提唱したシリアル通信方式です。信号線が2本だけでそのうちの一本がデータを双方向でやり取りする信号線SDA（Serial Data Line）で、他方が同期用クロック信号線SCL(Serial Clock Line)です。めかのとろ特徴としてはマスタ側とスレーブ側に分かれ、マスタ側が通信をすべてコントロールしています。I2C では...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">シリアル通信SPI</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/spi" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.09</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/internet-4546508_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">シリアル通信SPI【STM32のSPI詳細】</div></div><div class="lkc-url">https://depfields.com/spi</div><div class="lkc-excerpt">STM32に内蔵のペリフェラルSPIの使い方を解説しています。この章ではSPI仕様のEEPROMへのデータの読み込および書き込を例に解説しています。シリアル通信SPIとはめかのとろシリアル通信SPIは同期型シリアル通信の一つです。クロック(SCLK)、入力MOSI、出力MISO、チップセレクト(CS)の4本の信号線で通信を行います。めかのとろSPIに接続されるデバイスにはマスタとスレーブがあります。1つのマスタデバイスに共通のバスで複数のスレーブデバイスを接続でき、通信時にチップセレクト（CS）で通信対象のデバイスを選択します。シリアルSPI...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">DMA</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dma" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.10</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/board-2440249_640-1-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">DMA(Direct Memory Access)【STM32のDMA詳細】</div></div><div class="lkc-url">https://depfields.com/dma</div><div class="lkc-excerpt">DMAは初心者・入門者には必須のスキルではありませんが、DMAを使用するとCPUの負担が減るため、CPU能力を他の処理に回せ、省電力に寄与できますので実務では求められることもあるでしょう。この章ではADコンバータの複数チャネルデータをDMAでメモリに転送する例やUSART送受信にDMAを使用した例で解説しています。STM32のDMA転送めかのとろDMA(Direct Memory Access)とは直接メモリアクセスと呼ばれるもので通常、データはCPUを介してメモリに転送するのに対して、DMA転送を行うとCPUを介さずにADコンバータ、シリアル通信などペリフェ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">独立型ウォッチドッグタイマ</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/iwdg" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.10</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/dog-2367797_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">独立型ウォッチドッグタイマ【STM32のIWDG詳細】</div></div><div class="lkc-url">https://depfields.com/iwdg</div><div class="lkc-excerpt">ウォッチドッグタイマとはめかのとろウォッチドッグタイマとはプログラムが暴走・フリーズしてしまったときに、これを検出してプログラムを終了させてリセットかける機能のことです。プログラムの異常を見張る役目のためウォッチドッグ（番犬）タイマと呼ばれています。めかのとろPCで何らかの影響でアプリケーションプログラムが突然フリーズすることはよくあると思います。これは何らかのはずみでプログラムが無限ループに入ってしまい、外からの操作を受け付けることができなくなる、つまり固まってしまう状態になってしまっている...</div></div><div class="clear"></div></div></a></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 style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>当サイトで解説している各ペリフェラルで使用するライブラリ関数はSTM32マイコンを使用する上での主要なものではありますが<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">一部に過ぎません</span></strong>。さらに、いろいろな機能を使いたい場合に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ファームウェアSPLの解説している</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>がありますので紹介しておきます。<a href="http://www.minokasago.org/STM32wiki/?%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%A2%E6%95%B0%E4%B8%80%E8%A6%A7" target="_blank" rel="noopener noreferrer"><strong>STM32ファームウェア関数一覧</strong></a></p>
</div>



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



<h2 class="wp-block-heading">組み込みで使うOS</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">アプリを作成するにつれて機能が増え、処理が複雑になってくるものです。複雑な処理はOSを使用すると体系的にプログラミングできるようになります。この章では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">OSの概念から、組み込み使用されるRTOSについて解説</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 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><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">組み込みに適したOSを導入して各処理を管理する</span></strong>ことにします。この組み込みに適したOSは<strong>リアルタイムOS(RTOS)</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>OSを導入するといっても軽いアドオンソフトのようなもので、ルールに従って一度パターンを構成すると、その後はアプリケーションプログラムごとに簡単に採用できるようになります。OSを使用しない場合に比べて、<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>当サイトではリアルタイムOS(RTOS)の特に<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>



<h3 class="wp-block-heading">リアルタイムOS</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/rtos" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.10</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/code-820275_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">リアルタイムOS【マイコン開発には必須】</div></div><div class="lkc-url">https://depfields.com/rtos</div><div class="lkc-excerpt">リアルタイムOSとはめかのとろOS（オペレーティングシステム）とはコンピュータシステム全体を管理、コントロールしている基本的なソフトウェアのことで、PC、スマートフォン、タブレットで使われているマイクロソフト社のWindows、Google社のAndroid、アップル社のiOSそしてオープンソースのLinuxなどはよく耳にすることがあるかとおもいます。これらは汎用OSと呼ばれるものです。オペレーティングシステム（汎用OSとリアルタイムOS）めかのとろPCやタブレット等の使用者はCPU、メモリといったハードウェアとアプリケーションPCやスマ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">FreeRTOS</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/freertos" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">3 Pockets</div></div><div class="lkc-date">2020.06.10</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/rtos_logo-1-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">FreeRTOS【STM32学習向け】</div></div><div class="lkc-url">https://depfields.com/freertos</div><div class="lkc-excerpt">マイコン向けにさまざまなRTOSがありますが当サイトではSTM32マイコンの学習用にFreeRTOSを使用します。最新のAMAZON系のものではなく従来タイプを使用しています。学習用ですのでできるだけシンプルなものから始めるのがよいと考えます。FreeRTOSとはFreeRTOSロゴめかのとろFreeRTOSはオープンソースとして提供されており、無償で商用アプリケーションに使用することができるマイクロコントローラーおよび小型マイクロプロセッサ向けのリアルタイムオペレーティングシステム (RTOS) です。現状ではAmazon社が維持管理しています。めか...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">タスク管理</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/task" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.10</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/1826416_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">FreeRTOSタスク管理の基本【学習・実践向け：具体的な使い方】</div></div><div class="lkc-url">https://depfields.com/task</div><div class="lkc-excerpt">FreeRTOSを使ったタスク管理の基本を構成の概念を説明しながら実際のプログラム内の具体的な記述を挙げて解説していますので実践のプログラムにすぐに活用できます。学習向けとしていますが、もちろん実践で使えるものです。タスクの優先度と使用頻度めかのとろアプリケーションプログラムで2種類の処理Aと処理BをRTOSでタスク管理する方法について解説します。処理AはTaskA、処理BはTaskBとして優先順位のあるなし、タスク実行頻度の指定あるなしでどのように実行されるかを見ていきましょう。&nbsp;2つのタスクTaskAとTaskBの優先順...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">キュー</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/queue" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/duck-3217049_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">キュー【FreeRTOSでの具体的な使い方】</div></div><div class="lkc-url">https://depfields.com/queue</div><div class="lkc-excerpt">キューとはめかのとろキュー（Queue）とはコンピュータ用語の一つで、FreeRTOSではデータをタスク間で転送する場合によく利用されます。語源は順番を待つものの列のことです。めかのとろキューは先入れ先出し(First In First Out)のデータ構造となっているバッファ（一時データ格納所）です。めかのとろこれと逆の動作をする後入れ先出し（Last In First Out）のデータ構造となっているバッファはスタックといいます。キューとスタックキューを使ったタスク間でのデータ転送めかのとろキューを使ったタスク間でのデータ転送の応用例と...</div></div><div class="clear"></div></div></a></div></div>



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



<h2 class="wp-block-heading">組み込み開発設計</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">プログラミングによりマイコンを操作することができるだけでは、実務では不十分です。<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 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>なにか、アイディアが浮かんで具体化するためには設計という作業が必要です。この章では設計の概念から最終の動作を確認できるところまでの手順を解説しています。</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>。</p>
</div></div></div>



<h3 class="wp-block-heading">システム設計</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/system-design" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/1140762_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みシステム設計【具体的な開発手順ノウハウ】</div></div><div class="lkc-url">https://depfields.com/system-design</div><div class="lkc-excerpt">設計とはめかのとろ設計開発を進めていくうえでたどる手順について解説します。これは各個人により自分にあったスタイルで行えばよいので、初心者向けにある程度参考になるものとして進めていきます。めかのとろものづくりにおいてある構想が浮かんだとき、頭のなかにとどめておくだけではいわゆる「絵に書いた餅」のままです。構想を具体的なものにするためには設計という作業をおこなう必要があります。設計と聞くと専門的な知識や技術ですすめる作業のイメージですが、別の言い方をすると、構想のアイディアを具体化させるためにど...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">ハードウェア設計</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/hardware-design" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.06.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/3892032_s-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みハードウェア設計【具体的な回路を紹介】</div></div><div class="lkc-url">https://depfields.com/hardware-design</div><div class="lkc-excerpt">マイコンと周辺回路めかのとろマイコンは単体では単なるICですので実際に使用するためには電源回路、入出力機器とマイコン間のインターフェースなど電子回路で構成する周辺回路が必要です。必要に応じて外部クロック、リセット回路を付加します。ここでいう周辺回路はマイコン外の回路のことです。マイコンと周辺回路電源回路めかのとろマイコンに供給する電源はDC5V、3.3Vが一般的で、最近では低電圧アプリケーションも多く、乾電池一本（1.2V）で動作するものもあります。基本的にマイコン動作電圧を得るための電源回路が必要です。...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">ソフトウェア設計</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/software-design" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/source-4280758_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みソフトウェア設計【プログラミング】</div></div><div class="lkc-url">https://depfields.com/software-design</div><div class="lkc-excerpt">C言語によるプログラミングめかのとろ開発環境とハードウェアが整った段階ではあとはアプリケーション作成のためにC言語によるプログラミングを行います。作成したIOマップで使用するGPIO（各ピン）、ペリフェラル（周辺回路）などの初期設定を行ってからアプリケーションを記述した処理への流れになります。めかのとろC言語で記述したプログラム全容のアウトラインは下図のようになります。プログラム構成めかのとろ組み込みプログラムは①から⑧の手順で記述し、アプリケーションはmain関数内の無限ループwhile(1)内に処理内容を記述し...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">実装</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/implement" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">2 Pockets</div></div><div class="lkc-date">2020.06.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/06/stlink1-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンプログラム実装【ST-LINKを使ったプログラム転送】</div></div><div class="lkc-url">https://depfields.com/implement</div><div class="lkc-excerpt">プログラム転送ツールめかのとろ新規のプログラムを作成して、ビルドを行うと、大概は文法エラー、コンパイラエラーやリンクエラーが発生するもので、これらをなんとか解決しなければ先にはすすめないのですが、この段階でのエラーはプログラミング言語とその開発環境に由来するものです。めかのとろ地味な作業ですがエラーをすべて解決してはじめてビルド成功となりマイコンに書き込むバイナリファイルが作成されます。バイナリファイルが生成されるとあとは専用ツールでPCの開発環境からマイコンへ転送して書き込みます。総合開発環...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">デバッグ</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/debug" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.06.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/05/arif-riyanto-1DRq1ZsE2N0-unsplash-1-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みプログラムデバッグ【おすすめ：シリアルモニター】</div></div><div class="lkc-url">https://depfields.com/debug</div><div class="lkc-excerpt">動作チェックとしてのデバッグめかのとろプログラム転送も無事完了したところで組み込みシステムとしてハードウェアで構成した実機でプログラム動作をチェックします。プログラミングに精通しているひとにとっては改めて解説する必要はないと思いますが、デバッグというものです。あまりプログラムサイズが大きくなるとデバッグも大変であることから区切りのよいところで行うようにするのがよいです。めかのとろ単機能で単純なプログラムであればこの段階でほぼ完成なのですが、ある程度多機能で複雑なアプリケーションにおいては設計...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">外部クロック</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/extclock" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.11.05</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/11/metronomes-812679_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンの外部クロック【ARMコアSTM32】</div></div><div class="lkc-url">https://depfields.com/extclock</div><div class="lkc-excerpt">マイコンを使用するうえで必要不可欠なクロックのうち、外部クロックについて解説しています。特に水晶振動子は単純な部品ではあるのですが、選定を謝るとクロックが最悪停止したりするトラブルを引き起こします。ここでは安定して外部クロックを与えるための実践に則した勘所を紹介しています。クロックの詳細につきましてはシステムクロック【STM32のSYSCLK設定詳細 】で解説していますのでそちらを参考にしてください。水晶振動子はマイコン周辺で使われる電子部品のうちでも抵抗器やコンデンサのようにつければ必ず機能するもので...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">電源周辺回路</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/powersupply" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.11.07</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/11/power-supply-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">組み込みマイコンの失敗しない電源周辺回路【ARMコアSTM32】</div></div><div class="lkc-url">https://depfields.com/powersupply</div><div class="lkc-excerpt">マイコンでアプリケーションを動作させるにあたって、とても大事なものが安定した電源を供給することです。あたりまえのことのようですが、一言で電源といってもまともに勉強すると、この部分だけで終わってしまうほど奥が深いものです。供給電圧が不安定であったり、電源の容量が不足していたり、また、電源を通した外部からのノイズによるトラブルを防ぐためにもしっかり基本を理解することが大切です。電源はレギュレータと呼ばれるまさにアナログ技術の結集みたいな高度に設計されたデバイスや部品で構成されているものですが、わ...</div></div><div class="clear"></div></div></a></div></div>



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



<h2 class="wp-block-heading">マイコンのIoT化</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">組み込み製品にIoTに対応する技術を搭載すると、アプリケーションの幅が広がります</span></strong>。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ここではマイコンをIoT化するための手始めとして最も手軽な<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無線モジュール ESP32</span></strong>による無線機能(WiFi)を搭載するための手順を解説しています。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ホビー用途やPCプリンター等民生向けの機器ではWiFiを使用したアプリケーションが有用ですが、産業レベルの堅牢な性能が要求される機器においては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">有線LANシステムに組み込まれるものが要求されます</span></strong>。このサイトでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Ethernet非対応のマイコン</span></strong>STM32F1xxシリーズに簡単に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">後付できるLANモジュール</span></strong>でTCPソケットによる通信、さらにHTTPサーバーを搭載してブラウザから通信する方法を紹介します。</p>



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



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/05/4_1_11.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/05/4_1_11.png" alt="" class="wp-image-5624" width="387" height="407" srcset="https://depfields.com/wp-content/uploads/2020/05/4_1_11.png 510w, https://depfields.com/wp-content/uploads/2020/05/4_1_11-285x300.png 285w" sizes="(max-width: 387px) 100vw, 387px" /></a></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">IoT</span></strong>とは<strong>I</strong>nternet <strong>o</strong>f <strong>T</strong>hingsといったもので、いままでは製品がさまざまな分野で個々に独立して機能していたものが、ここ最近では有線、無線にかかわらず製品をネットワークに接続してちょっとしたリモート操作をしたり、インターネット回線を介して例えばスマホで製品の管理をすることも可能となってきました。</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">IoT</span></strong>の言葉そのままではなんやらすごく抽象的で実体がわかりにくいですが、ネットワークに製品をつなげることで、従来では考えられなかった発展性をもっています。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">今後の組み込み製品はIoTに対応することが必須</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>当サイトでは既存の組込みシステムを<a href="https://depfields.com/esp32-wifi/" target="_blank" rel="noreferrer noopener" title="ESP32でNucleo(STM32)を簡単にWiFi対応に"><strong>簡単にIoTに対応させることができる無線化モジュール</strong></a>をつかったものを紹介します。無線化モジュールはそれ自体にマイコンが内蔵されていて、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">WiFiプロトコルスタック</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Bluetoothプロトコル</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>有線LANに関しては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">基本的にはマイコンそのものがイーサネット対応</span></strong>であることが条件でソフトウェアで構成される通信プロトコルスタックをどのように使用するかは結構ややこしく、STM32F1では対応していません。STM32F4シリーズあたりのEthernetに対応したマイコンとコード自動生成機能およびHALライブラリの開発環境を使用すれば比較的簡単に実現できますが、それでも<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>筆者の経験ではSTM32F1シリーズで製品化した既存のシステムをなんとかイーサネット対応にする必要性があったことから、<a href="https://depfields.com/ethernet/" target="_blank" rel="noreferrer noopener" title="マイコンのEthernet対応システム設計【STM32Nucleo】"><strong>外付けでイーサネット対応化</strong></a>するのに使用したのが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">WIZnet社のW5500というTCP/IPコントローラIC</span></strong>です。このICにはTCP/IPプロトコルスタックがハードウェアとして内蔵されているので比較的簡単なコードだけで使用できるのが特徴です。通信インターフェースの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">SPI</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>SPI通信仕様で外付けコントローラによるマイコンのイーサネット化は電子工作用途ではちょっと敷居が高いのですが、ものにしてしまえば今後強力な資産となるでしょう。</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>このサイトではW5500を使用したもののみを扱っていますが、通信プロトコルの基本的な扱い方は共通ですので一度を理解してしまえば他のLANコントローラにもつぶしがきくようになります。</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><a href="https://depfields.com/tcp-server/" target="_blank" rel="noreferrer noopener" title="TCPサーバーを実装したソケット通信【STM32Nucleo】">TCPソケット通信システム</a></strong>を一度構築してしまえば、あとはソフトウェア上で上位の<strong><a href="https://depfields.com/http-server/" target="_blank" rel="noreferrer noopener" title="HTTPプロトコルで構成したWEBサーバーを搭載したマイコンシステム【STM32Nucleo】">HTTPプロトコルを搭載</a></strong>したり、さらには<strong><a href="https://depfields.com/websocket/" target="_blank" rel="noreferrer noopener" title="マイコンに実装したWebSocketによる双方向通信【STM32Nucleo】">WebSocketを搭載</a></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-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-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">無線LAN(ESP32モジュール)の基礎</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/esp32-wifi" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">3 Pockets</div></div><div class="lkc-date">2020.08.30</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/08/ESP32-DevKiTC-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ESP32でNucleo(STM32)を簡単にWiFi対応に</div></div><div class="lkc-url">https://depfields.com/esp32-wifi</div><div class="lkc-excerpt">無線モジュールESP32(ESP32-WROOM-32)を使用してSTM32をWiFi対応にする方法を解説します。大人気のESP32モジュールですが、ESP32自体をマイコンとして操作する解説が多く他のマイコンを簡単にWiFi化する情報が少ない状況で比較的簡単にシリアル通信のATコマンドによるリモート操作を実現してみました。無線モジュールESP32めかのとろ組み込みシステムをIoT化するのにまず思い浮かべるものが無線モジュールを使ったWiFi化です。さまざまな無線モジュールがあるなかで、シリアル通信を介してWiFiが使用できるものとして電子工作でよく使...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">ブラウザを利用したWiFiリモートコントロール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/esp32-webserver" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.09.21</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/09/computer-1231889_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">ESP32でWiFi化したNucleo(STM32)をブラウザでリモート操作</div></div><div class="lkc-url">https://depfields.com/esp32-webserver</div><div class="lkc-excerpt">ESP32をSTM32マイコンに組み込んでWiFi化したWEBサーバーを構築して、ウェブブラウザからSTM32マイコンをリモート操作する方式を解説していきます。 ブラウザからマイコンをリモート操作ができるとアプリケーションの用途がぐっと拡がります。  めかのとろ  ESP32でSTM32をWiFi化したTCPサーバーを構築するとPCやスマホなどからターミナルソフトでTCP通信によってリモートコントロールができるようになりました。ここではターミナルソフトの代わりに ウェブブラウザからNucleo(STM32マイコン)にアクセスしてリモートコントロールする方...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコンのEthernet対応システム設計</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/ethernet" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">5 Pockets</div></div><div class="lkc-date">2021.12.18</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/12/network-LAN-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンのEthernet対応システム設計【STM32Nucleo】</div></div><div class="lkc-url">https://depfields.com/ethernet</div><div class="lkc-excerpt">  マイコンをネット接続するための基礎知識ネットワークに接続して使用するIoT化は組み込み機器でも浸透してきました。テレビ等を始めとする家電やスマホなどの身近な民生品ではWiFiによるネットワーク接続が一般的になっていますが、動作安定性やセキュリティが求められる産業機器向け製品には有線通信の一つであるイーサネットが使用されます。今回は、これまで慣れ親しんできた汎用マイコン(Nucleo-F103RB)に外付けのイーサネット対応LANコントローラW5500を適用してイーサネットIoTに対応する方法を解説します。対象はSTM32マイコ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">TCPサーバーを実装したソケット通信</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/tcp-server" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2021.12.19</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/12/socket-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">TCPサーバーを実装したソケット通信【STM32Nucleo】</div></div><div class="lkc-url">https://depfields.com/tcp-server</div><div class="lkc-excerpt">マイコンをイーサネット対応にしてpingが通った状態でネットワークに参加しただけでは何の意味もありませんが、上位のトランスポート層にTCPやUDPといったプロトコルを搭載することによってサーバーとクライアント間で通信ができるようになります。ソケット通信は前回解説したOSI参照モデルのトランスポート層に属するTCPプロトコルにしたがった通信手段です。W5500コントローラを搭載したマイコンでTCPソケット通信を実現するためには内蔵したTCP/IPプロトコルスタックをレジスタで操作します。操作自体はメーカーがドライバを提供し...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">HTTPプロトコルで構成したWEBサーバーを搭載したマイコンシステム</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/http-server" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.12.22</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/12/browser-150x150.png" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">HTTPプロトコルで構成したWEBサーバーを搭載したマイコンシステム【STM32Nucleo】</div></div><div class="lkc-url">https://depfields.com/http-server</div><div class="lkc-excerpt">マイコンにTCPサーバーが搭載されていればHTTPプロトコルで構成したWEBサーバーに発展させることは容易です。WEBサーバーを搭載したシステムの利点は、ブラウザからアクセスできるためにPC、スマホ等どの端末からも専用アプリをインストールしなくても通信でき、遠隔操作管理等のIoT化を容易に実現できることです。 今回はNUCLEO-F103RBのようなメモリの小さいマイコンに最低限の機能をもったWEBサーバーを搭載してみます。WiFiモジュールESP32のときもWEBサーバーを扱ったのですが、メーカー提供のHTTPドライバフォーマットに従っただ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">WebSocketを使ったブラウザとマイコンでのリアルタイム通信</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/websocket" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2022.02.14</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2022/02/handshake-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンに実装したWebSocketによる双方向通信【STM32Nucleo】</div></div><div class="lkc-url">https://depfields.com/websocket</div><div class="lkc-excerpt">前回の記事「HTTPプロトコルで構成したWEBサーバーを搭載したマイコンシステム」ではマイコンにWEBサーバーを搭載して専用のアプリを使用しなくてもPCやスマホ等のブラウザからアクセスすることでより身近に機器のIoT化に発展させる方法を解説しました。ブラウザは通常HTTPプロトコルに従って機器と通信しているのですが、基本的に何かを要求するのはブラウザ側からだけです。機器側はブラウザからの要求に応じてサーバーとして応答するだけですので例えば、機器内のデータをブラウザに送信してリアルタイムで表示させることはできませ...</div></div><div class="clear"></div></div></a></div></div>



<h3 class="wp-block-heading">マイコンに実装したWebSocketの超高速リアルタイムモニター</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/websocket-highspeed" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2022.02.18</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2022/02/lights-g4237ecfe8_640-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコンに実装したWebSocketの超高速リアルタイムモニター【STM32Nucleo】</div></div><div class="lkc-url">https://depfields.com/websocket-highspeed</div><div class="lkc-excerpt">WebSocketを実装したマイコン(STM32Nucleo)からブラウザへデータを送ってモニター表示させるところまではなんとかできるようになったのですが、更新レートをあげると不安定で停止したり、切断したりする現象がおきていました。当初はブラウザやWebSocketの仕様によるものかと思っていたのですが、原因が判明し、解決したところもとの100倍近いほぼ限界(マイコンの設定による)のレートで更新できるようになりました。これぞWebSocketプロトコルの利点を活かした通信です。原因は組み込み系WebSoket通信特有の要因と思われるハードウェア...</div></div><div class="clear"></div></div></a></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 style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>携帯電話やテレビ、プリンタ等の家電製品ではWiFi搭載で無線でコントロールするものが一般的で有線LANとは言葉自体は時代遅れのような感じはしますが、それは民生品に限った「有線」です。産業機器向けの製品では<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">運転環境条件の厳しい製造現場</span></strong>でのネットワークを組むためのLANは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">有線である必要</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>により無線仕様は容易に扱えない事情もあります。セキュリティ面からもすべてが容易に無線に置き換わることはないでしょう。</p>
</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-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/nucleo" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width=16 height=16 /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">4 Pockets</div></div><div class="lkc-date">2020.05.06</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/07/nureo-f103rb-150x150.jpg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ</div></div><div class="lkc-url">https://depfields.com/nucleo</div><div class="lkc-excerpt">現役エンジニア社長のめかのとろです。組み込みエンジニアをめざしているひとにとって、本格的に勉強を始めるためにどんなものを教材にすれば効率よく短期間で本当につかえるスキルが身につくのかを検討しておすすめでとっておきの方法を紹介します。ここでは電子工作において巷で大流行のArduinoとARMのオープンソース開発環境であるMbed、そして今回の紹介するNucleoマイコンボードを使いこなすために開発環境STM32CubeIDEをカスタマイズしたものとの比較をしていきます。ArduinoについてArduino センサーシールドArduinoめかのとろA...</div></div><div class="clear"></div></div></a></div></div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/embedded/" 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/f6ec6264acd394b1fac94f6a4ba0d4dfb8f062f8e194553d8c23c9c5ee7a0e78.jpeg" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Tutorial to ARM(STM32)[Effective method for ARM beginners] | Most Powerful Bi...</div></div><div class="lkc-url">https://en.depfields.com/embedded/</div><div class="lkc-excerpt">The explanation is based on STMicroelectronics&#039; STM32F1xx series (Cortex-M3), which has an ARM core mounted on an embedded Microcontroller(MCU) in &quot;Tutorial to ARM(STM32)&quot;.  This site explains the following know-hows such as knowledge of M</div></div><div class="clear"></div></div></a></div></div><p>The post <a href="https://depfields.com/embedded/">ARM(STM32)の基礎と開発入門【ARM初心者の効果的な勉強方法】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
