tutrc_harurobo_lib
読み取り中…
検索中…
一致する文字列を見つけられません
tutrc_harurobo_lib::UART クラス

#include <uart.hpp>

公開メンバ関数

bool init (UART_HandleTypeDef *huart, size_t rx_queue_size=64)
 
bool transmit (const uint8_t *data, size_t size)
 
bool receive (uint8_t *data, size_t size, uint32_t timeout)
 
size_t available ()
 
void flush ()
 
void enable_printf ()
 

詳解

UARTクラスを使う際は、USARTx global interrupt を有効化する必要があります。

#include "main.h"
#include <cstdio>
#include "cmsis_os2.h"
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
using namespace tutrc_harurobo_lib;
UART uart1;
UART uart2;
void example_thread(void *) {
uart1.init(&huart1);
uart2.init(&huart2);
uart2.enable_printf(); // UART2に対してprintf有効化
while (true) {
uint8_t data[] = {'h', 'e', 'l', 'l', 'o'};
// 5バイト送信
if (uart1.transmit(data, sizeof(data))) {
printf("送信成功\r\n");
}
// 5バイト溜まるまで受信待機、10msでタイムアウト
if (uart1.receive(data, sizeof(data), 10)) {
printf("受信成功\r\n");
}
osDelay(1000);
}
}
Definition uart.hpp:56
bool transmit(const uint8_t *data, size_t size)
bool init(UART_HandleTypeDef *huart, size_t rx_queue_size=64)
bool receive(uint8_t *data, size_t size, uint32_t timeout)
Definition bno055.hpp:10

関数詳解

◆ available()

size_t tutrc_harurobo_lib::UART::available ( )

受信キューにあるバイト数を取得する

◆ enable_printf()

void tutrc_harurobo_lib::UART::enable_printf ( )

printf() を呼び出した際にこのペリフェラルを介して出力する

◆ flush()

void tutrc_harurobo_lib::UART::flush ( )

受信キューを空にする

◆ init()

bool tutrc_harurobo_lib::UART::init ( UART_HandleTypeDef * huart,
size_t rx_queue_size = 64 )

UART初期化

引数
huartUART_HandleTypeDefへのポインタ
rx_queue_size受信キューサイズ
戻り値
true: 成功, false: 失敗

◆ receive()

bool tutrc_harurobo_lib::UART::receive ( uint8_t * data,
size_t size,
uint32_t timeout )

UART受信

引数
data受信したバイト列を格納するポインタ
size受信するバイト数
timeoutタイムアウトまでの時間(ms)
戻り値
true: 成功, false: 失敗

◆ transmit()

bool tutrc_harurobo_lib::UART::transmit ( const uint8_t * data,
size_t size )

UART送信

引数
data送信するバイト列の先頭ポインタ
size送信するバイト数
戻り値
true: 成功, false: 失敗

このクラス詳解は次のファイルから抽出されました: