Project_OKI’s diary

エンジニアの勉強ブログ

組み込みC言語

STM32 マイコン42(CubeIDE:Taskの使い方)

1.本日の内容 (1) CubeIDEのTasksの使用方法について記載する。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[…

STM32 マイコン41(CubeIDE:階層の違うヘッダファイルのインクルード)

1.本日の内容 (1) CubeIDEで階層の違うファイルのヘッダファイルをインクルードする方法について。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.sc…

STM32マイコン40(printfを呼び出した場所の関数名及びファイル名を表示)

1.本日の内容 (1) CubeIDEを使用し、printfで、使用している関数及びファイル名を表示する。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.…

Doxygen1(Doxygenの魅力と活用法)

Doxygenとは ・目次 1.目的 2.Doxygenとは(Doxygenの特徴) 3.Doxygenのメリット 4.まとめ 関連記事 1.目的 ・Doxygenについて知り、主に何が出来るのかを把握する。 ・DoxygenはJavadocスタイルのコメントを使用してソースファイルからドキュメントを生成で…

STM32マイコン39(CubeIDEの使い方:#if~#endifを閉じる)

1.本日の内容 (1) STM32CubeIDEの機能の一つである#if~#endifまでのソースを閉じる方法について記載する。 この機能を使用することにより、#ifで実行していない場所のソースを閉じることで、 コードの可読性が上がる。 ・目次 1.本日の内容 2.内容 2.1 #if…

STM32タイマ割り込みの設定値計算

タイマ割り込みを設定する為の、プリスケーラ値の自動計算 この記事では、STM32F401のタイマ割り込みを設定する為の、プリスケーラ値を自動計算する。 APBの値、設定したい割り込み間隔(時間)、Counter Periodの値から、 設定したい割り込み間隔に設定するの…

STM32マイコン38(CubeIDE SPI通信設定について)

STM32マイコン38(CubeIDE SPI通信設定) 1.本日の内容 (1) STM32のSPI通信設定について記載する。 (2) STM32CubeIDEのSPI通信の設定について記載する。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){argument…

RCローパスフィルタとCRハイパスフィルタのカットオフ周波数などの自動計算

window.onload = function () { let tes1 = document.getElementById("test1"); tes1.addEventListener("click",function(){ tes1.innerText = "タイトル" }) } window.onload = function () { let tes1 = document.getElementById("test1"); tes1.addEventL…

抵抗付きLEDの動作確認

抵抗付きLEDの動作確認 この記事では、抵抗付きLEDの動作確認について記載する。 使用LED: ・抵抗内蔵5mmLED 5V 赤色 640nm OSR6LU5B64A-5V ・抵抗内蔵5mmLED 5V 黄色 590nm OSY5LU5B64A-5V ・抵抗内蔵5mmLED 5V 黄緑色 570nm OSG8NU5B64A-5V 1. 抵抗付きLE…

5Vトレラントとは

マイコンのGPIOに書いてある5Vトレラントとは この記事では、5Vトレラントについて説明する。 1. 5Vトレラントとは ・基本的にマイコンの入力は電源電圧が入力の最大値になっていることが多い。 ・それに対し、電源電圧に関係なく5Vまで、GPIOの入力として使…

STM32マイコン37(CubeIDE:USBの設定内容)

STM32マイコン37(CubeIDE:USBの設定内容) 1.本日の内容 (1) CubeIDEのUSBの設定内容について記載する。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts…

STM32マイコン36(USBのCDC使用ついて)

STM32マイコン36(USBのCDC使用) 1.本日の内容 (1) STM32のUSB機能の一つである、CDC機能を使用する方法について記載する。 (2) CDCにより、mbedをUSBで接続し、Vertual Com Port(仮想COM)として認識ようにする。 使用マイコン: (function(b,c,f,g,a,d,e){b.…

STM32マイコン35(HAL_I2Cの関数について)

STM32マイコン35(HAL_I2C関数について) 1.本日の内容 (1) HAL_I2Cに関連する関数の使い方について理解する。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scr…

STM32マイコン34(bss,text,dataセクションについて)

STM32(bss,text,dataセクション) 1.本日の内容 (1) セクション及び、そのセクションの内容について理解する。 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.sc…

STM32マイコン33(CubeIDEの使い方:空きメモリ容量の確認)

STM32(CubeIDE:空きメモリ容量の確認) 1.本日の内容 (1) CubeIDEで空きメモリ容量(RAMとFLASH)の確認を行う。 (どの程度使っているかの確認) 使用マイコン: (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.curren…

STM32マイコン32(リスタート時の原因確認)

STM32 (リスタート時の原因確認) 1.本日の内容 (1) CubeIDEでリスタート処理が発生した時の原因を取得する方法について記載する。 主に、下記リスタートのフラグを確認し、原因の特定が出来る。 下記は、STM32F103xxの場合。 ・PINRSTF:PINリセットフラグ …

STM32に関する資料まとめ

STM32に関する資料まとめ 自分がよく確認するドキュメント一覧です。 目次 STM32に関する資料まとめ STM32F4関連 STM32F1関連 mbed(STM32F401RE関連) CubeIDE関連 STM32F4関連 ・STM32F4リファレンス検索 →リファレンス マニュアル | STM32, STM8ファミリはS…

組み込み基礎知識(PINRSTF/PORRSTF/SFTRSTF/IWDGRSTFなどの意味)

組み込み基礎知識(PINRSTF/PORRSTF/SFTRSTF/IWDGRSTFなどの意味) 1.目的 下記言葉の意味について簡単に記載する。 ・PINRSTF:PINリセットフラグ ・PORRSTF:POR/PDRリセットフラグ ・SFTRSTF:ソフトウェアリセットフラグ ・IWDGRSTF:独立型ウォッチドッグ…

STM32マイコン31 (CubeIDEの使い方:レジスタ確認)

CubeIDEの使い方(レジスタ確認) 1.目的 レジスタの意味について記載する。 CubeIDEやAtlicTrueStdioでのデバック時、breakした時のレジスタ状態を確認する方法について記載する。 上記は、デバック時に問題が発生した時の原因追及の為の手がかりとなる。 目…

組み込み基礎知識(ベクタ/ベクタテーブル/フェッチ/プリフェッチ)

ベクタとフェッチの意味 1.目的 STM32のマイコンのデータシートを参照すると、ベクタとフェッチという言葉が出てくる。今回は、その言葉の意味について記載する。 ベクタについて理解する フェッチの意味について理解する。 目次 ベクタとフェッチの意味 1.…

STM32マイコン30(AD変換と移動平均)

STM32 (AD変換と移動平均) 1.本日の内容 (1) STM32マイコン(nucleof401re)を使用して、AD変換と移動平均処理を行う。 ・目次 STM32 (AD変換と移動平均) 1.本日の内容 2.内容 (1) やる内容の詳細 (2) 使用部品 (2) CubeIDEの設定 (3) プログラムの作成 (4) プ…

STM32マイコン29(CubeIDEの出力されるフォルダ構成の選択)

STM32 (CubeIDEのフォルダ構成の選択) 1.本日の内容 (1) CubeIDEで出力されるフォルダ構成は2種類ある。 そのフォルダ構成の違いについて記載する。 参考:https://www.st.com/resource/ja/user_manual/um1718-stm32cubemx-for-stm32-configuration-and-init…

STM32マイコン28(LCDに数値を表示する)

STM32 (LCDに取得した数値を表示) 1.本日の内容 (1) STM32マイコン(nucleof401re)を使用して、 LCD(ACM1602)に取得した数値を表示する。 文字列は、そのまま出力することが出来るが、LCDに数値を表示する場合、 取得した数値を文字列に変換する必要がある。 …

STM32マイコン27(スイッチの短押し/長押し処理 )

STM32 (スイッチ長押し/短押し制御) 1.本日の内容 (1) STM32マイコン(nucleof401re)を使用して、 スイッチの長押し/短押しの判定を行う。 ・目次 STM32 (スイッチ長押し/短押し制御) 1.本日の内容 2.内容 (1) やる内容の詳細 (2) 使用部品 (2) CubeIDEの設定…

STM32マイコン26(割り込み:TIM3_IRQHandler)

割り込み:TIM3_IRQHandler 1.本日の内容 (1) STM32マイコン(nucleof401RE)を使用しLEDの点灯/消灯を制御する。 (2) 割り込み処理を行う場合、下記2つの関数がある。 ・void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) ・void TIM3_IRQHandler…

CubeIDE AD変換の設定

STM32 (DMAでAD変換) 1.本日の内容 (1) CubeIDEのAD変換の設定項目についてまとめました。 AD変換の設定を行う際の参考にしてください。 ※使用マイコン:nucleof401 ・目次 STM32 (DMAでAD変換) 1.本日の内容 2.内容 ​​(1) 設定内容 ​​(2) 設定の詳細内容 (a…

STM32マイコン25(LCD:ACM1602のI2C制御方法)

STM32 (I2C通信でLCD制御) 1.本日の内容 (1) STM32マイコン(nucleof401re)を使用して、 LCD(ACM1602)にHellow worldを表示する。 プログラム動作確認用に、LEDを点灯する。 ・目次 STM32 (I2C通信でLCD制御) 1.本日の内容 2.内容 (1) やる内容の詳細 (2) 使…

I2C通信とは

​​​​ I2C通信とは 1.目的 I2C通信について、理解する。 I2C通信で何を行っているのかについて理解する。 目次 I2C通信とは 1.目的 2.I2C通信とは 2.I2C通信の特徴 3.通信速度 4.通信に関して 5.配線に関して 6.基本的な通信のやり取り 7.通信タイミングにつ…

オープンドレインとは、オープンコレクタとは

オープンドレインとオープンコレクタについて 目次: オープンドレインとオープンコレクタについて 1.オープンドレインについて (a) オープンドレインとは (b)オープンドレインの利点 (c) オープンドレインの欠点 (d) マイコンにおけるオープンドレイン 2.オ…

STM32マイコン24(DMAでAD変換)

STM32 (DMAでAD変換) 1.本日の内容 (1) STM32マイコン(nucleof401re)を使用して、DMAを使用してAD変換を行う。 動作: STM32マイコン(nucleof401)でAD変換(DMA使用) pic.twitter.com/vZ54UFj9xH— Project OKI (@oki_project) 2023年3月11日 ※AD変換のDMAとは…