
STM32F3 シリーズにて DMA を利用した UART 通信の受信を行ってます。
通信するデータは 7Byte 1Set の固定データで、連続して送信されます。
デバッグを開始して最初の 7Byte は受信できるのですが、それきり受信が止まってしまいます。
何か考えられる原因はありますか?
該当すると思われる箇所のコードを以下にピックアップします。
UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_rx;
#define USART1_RX_LEN 7
uint8_t USART1_RXD_Buffer[USART1_RX_LEN];
int main(void)
{
HAL_Init();
SystemClock_Config();
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 1);
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
HAL_UART_Receive_DMA(&huart1, &USART1_RXD_Buffer[0], USART1_RX_LEN);
while (1)
{
}
}
ちなみに、最初に 7Byte を正常に受信した後、
huart1.Lock = HAL_UNLOCKED
huart1.State = HAL_UART_STATE_READY
huart1.ErrorCode = HAL_UART_ERROR_NONE
hdma_usart1_rx.Lock = HAL_UNLOCKED
hdma_usart1_rx.State = HAL_DMA_STATE_READY
となってます。
(この状態で受信も受信による割り込みも発生しない状態になってしまいます。)
No.1ベストアンサー
- 回答日時:
HAL_UART_Receive_DMA()が繰り返し実行されるようになっていないため,一回しか受信しません。
HAL_UART_Receive_DMA()及びバッファを取り出す処理をwhileループの中もしくは
あなたが本来意図している場所に置く必要があるでしょう。
何も考えてないんだとは思いますが。。。
余力があれば:
>通信するデータは 7Byte 1Set の固定データで、連続して送信されます。
受信側での取りこぼしを避けるために連続送信させずに,送信側を待たせる方法があります。
「フロー制御」等についても調べてみてください。
ご指摘の通り、ループ内に以下のコードを追加したところ、無事に連続受信できました。
if((huart1.State == HAL_UART_STATE_READY) && (hdma_usart1_rx.State == HAL_DMA_STATE_READY))
{
HAL_UART_Receive_DMA(&huart1, &USART1_RXD_Buffer[0], USART1_RX_LEN);
}
的確なアドバイス、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FAX受信を子機と親機両方消した...
-
FAXで再度印刷する方法
-
050IP電話の先へFAXが送れない...
-
IP電話でのFAX送信は可能?
-
受信したFAXが黒くなる
-
FAXの送受信の値段
-
FAX番号と電話番号はなぜ違...
-
FAXとは何ですか?また、FAXと...
-
FAXが先方に着信したかどうかの...
-
迷惑ファックスの受信拒否
-
電話への迷惑FAXについて
-
非通知で送られてきたファック...
-
フェリシモの注文を電話でした...
-
FAX(ファックス)ロール紙のロ...
-
うちにはFAXがないのに、FAXの...
-
PCで電話回線を利用して電話を...
-
ショートメールの184付や1...
-
通帳の記帳された文字のフォント
-
電話のモジュラージャックを無...
-
自分のパソコンから自分のFAXへ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
営業時間外にFax送信すると送信...
-
FAXとは何ですか?また、FAXと...
-
FAXで再度印刷する方法
-
FAXが先方に着信したかどうかの...
-
FAX用紙の左上の日時と氏名につ...
-
050IP電話の先へFAXが送れない...
-
迷惑ファックスの受信拒否
-
コンビニから送ったファックス...
-
パソコンの電源を入れてないく...
-
受信したFAXが黒くなる
-
FAX受信した印刷データーだけを...
-
「**G3**」とでて、FAXの受信が...
-
電話への迷惑FAXについて
-
FAXの用紙のサイズ
-
通信速度について
-
電話とFAXの受信音は別々に出来...
-
ADSL兼用回線のTEL側につないだ...
-
メールソフト Thunderbird ...
-
FAX送信が真っ黒。
-
FAX番号と電話番号はなぜ違...
おすすめ情報