問題タブ [stm32f0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
interrupt - この場合、UART 送信割り込みが機能しないのはなぜですか?
stm32f0 MCU を使用しています。
受信したすべてのバイトが送信される単純な UART エコー コードがあります。動作することをテストしました。ここにあります;
コードは機能しますが、快適ではありません。まず、tx_timeout
は 0 であり、ほとんどのコード例は非ゼロです。副作用はわかりません。次に、HAL_UART_Transmit()
ブロッキング呼び出しであり、割り込み内でブロッキング呼び出しを使用することはお勧めできません。HAL_UART_Transmit_IT()
そこで、ブロッキング呼び出しの代わりにUART 送信に割り込みを使用することにしました。変更されたコードは次のとおりです。
ただし、期待どおりに動作しません。私の PC は ASCII 12345678 を stm32 に送信します。期待どおりに動作する場合、PC は 12345678 を受信しているはずです。ただし、PC は代わりに 1357 を受け取ります。を使用するこのコードの何が問題になっていますHAL_UART_Transmit_IT()
か?
arduino - stm32 の Arduino millis()
いくつかの Arduino ライブラリを stm32 に移植しようとしています。Arduino ではmillis()
、起動からのミリ秒数を返します。stm32に同等の機能はありますか? stm32f0 MCU を使用しています。
stm32 - HAL ドライバーを使用した stm32 での EEPROM エミュレーション
stm32f0 で EEPROM をエミュレートしようとしています。STM が提供するアプリケーション ノートがあります。
サンプルmain.c
では、
Flash_Unlock()
STM 標準周辺ライブラリで使用される関数です。ただし、HAL ドライバーを使用するコードを自動生成する CubeMX を使用しています。EEPROM_emulation Flash_Unlock()
API を使用する前に呼び出す必要がありますか? はいの場合、呼び出しに相当する HAL は何Flash_Unlock()
ですか? EEPROM エミュレーションを使用するために CubeMX で行う特別な構成設定はありますか?
microcontroller - mbed コンパイラ: Nucleo 評価ボードでフラッシュ STM32F091RC をプログラムで読み書きする方法
設定パラメータを STM32F091RC フラッシュに書き込んで読み戻す必要があります。
読み取りおよび書き込み機能/メソッドとは何ですか?
c++ - STM32F0 LCD 用の C++ の記述
CoIDEを使ってC++で組み込み開発を学ぼうとしています。ブレークアウトボードに STM32F0 チップがあります。私はいくつかの LED チュートリアルなどを行いました。単純なテキスト文字列を LCD に書き込むことになっているこのコードに行き詰まっています。私がフォローしているチュートリアルは、私の STM32F0 チップにコードを適応させたeeherald チュートリアルにあります。私は近いと思いますが、LCD は初期化モードのままで、すべてのセルが点灯しています。テキストを書くために画面がクリアされることはありません。ここに私のコードがあります...正しい方向に私を向けるための助けは感謝されます!
問題はデータ方向コードの initGPIO() にある可能性があると「思います」が、よくわかりません...さまざまなことを試してみましたが、うまくいきませんでした。
serial-port - ターゲットボード上のマイコンSTM32F091RCのシリアルUARTからのガベージ出力がほとんど
Windows7 PC にシリアル出力するためのソフトウェアの予想される最初の printf 行は次のとおりです。
main() ************************** SW START プロジェクト 2016-10-30 x1
実際のシリアル出力 (TeraTerm または PuTTY で);
おはようございます
j**j*j**j*j**j*j**j*j**j*j ▒▒
_r01v-q0-30
_
シリアルは、mbed または VisualGDB から NUCLEO 評価ボードまでうまく機能しました。すなわち:
現在、STM32F091RC を使用して VisualGDB を実際のターゲット ボードに実行しています。
すなわち:
9600 では、いくつかの文字は正しいですが、ほとんどはガベージです。別のターゲットとケーブルを試しましたが、同じ問題です。PC のターミナル プログラム (TeraTerm または PuTTY) は 8,n,1 に設定されています。mbed ライブラリを調べました。デフォルト設定は 8 データ、パリティなし、1 ストップです。
USB/シリアル変換ケーブルはFTDIChip TTL-232R-RPi(通常Raspberry Pi用)です。
stm32 - STM32F0 DMA「入力オーバーフロー」
UART からデータを受信する STM32F0 DMA に問題があります。非循環モードで 2 つの DMA チャネル (rx と tx 用) を使用しています。rx チャネルの優先度は低くなります。UART からのデータは Idle Line 割り込みで処理され、ここで DMA 受信バイト数を読み取って処理します。パッケージ内のバイト数が DMA バッファ サイズ以下になるまで、すべて正常に動作します。そうしないと、DMA が奇妙にオフになり、次の Idle Line 割り込みによって 1、0、0、... の DMA 受信バイト数が返されます。コードの一部を次に示します。ここでは、DMA バッファがいっぱいになっているかどうかを確認し、DMA カウンタをバッファ サイズにリセットしようとしています。
最初の「オーバーフロー」と DMA の有効化の後、rx レジスタにあった「バッファ サイズ + 1」バイトが来て、その後、受信バイト数はゼロで安定します。私が間違っていることは何ですか?