3: 2018-12-03 (月) 22:03:00 takaboo | 4: 2023-03-18 (土) 23:04:29 takaboo | ||
---|---|---|---|
Line 318: | Line 318: | ||
Serial1ならJP3-2とIO19(RX1)、JP2-2とIO18(TX1)をつなぐ。 | Serial1ならJP3-2とIO19(RX1)、JP2-2とIO18(TX1)をつなぐ。 | ||
#ref(E133C_mega_hard.png,80%) | #ref(E133C_mega_hard.png,80%) | ||
- | -使用するSerial??に合わせてクラスの初期化を変更(DXLIB v1.2以降でサポート)。 | + | -使用するSerial??に合わせてavr_uno_hardserial.ht中のSerialとある部分を変更(DXLIB v1.5以降)。 |
- | #html{{ | + | |
- | <pre class="brush: c;"> | + | |
- | DXLIB dxif (false, &Serial3); | + | |
- | + | ||
- | DX2LIB dxif (false, &Serial3);</pre> | + | |
- | }} | + | |
****ソフトウェアシリアルモード [#b9557fa4] | ****ソフトウェアシリアルモード [#b9557fa4] | ||
Line 330: | Line 324: | ||
-[[JP2>#weaf917b]]と[[JP3>#sf2421be]]はオープンにする。 | -[[JP2>#weaf917b]]と[[JP3>#sf2421be]]はオープンにする。 | ||
-[[SW1>#g3d6a682]]はどの位置にあっても構わない。 | -[[SW1>#g3d6a682]]はどの位置にあっても構わない。 | ||
- | -接続した端子に合わせてクラスの初期化を変更。~ | + | -接続した端子に合わせてavr_uno_softserial.h中のMY_RX_PINとMY_TX_PINのマクロを変更(DXLIB v1.5以降)。 |
- | #html{{ | + | |
- | <pre class="brush: c;"> | + | |
- | DXLIB dxif (true, NULL, 10, 9); // rxpin IO10, txpin IO9 | + | |
- | + | ||
- | DX2LIB dxif (true, NULL, 10, 9); // rxpin IO10, txpin IO9</pre> | + | |
- | }} | + | |
****USBパススルーモード [#f2ca6d5c] | ****USBパススルーモード [#f2ca6d5c] | ||
[[UNOのUSBパススルーモード>#c1027f1a]]と同様です。 | [[UNOのUSBパススルーモード>#c1027f1a]]と同様です。 | ||
+ | |||
+ | ***Arduino UNO R4での使用 [#jf6785e3] | ||
+ | [[Arduino UNO R4>https://store-usa.arduino.cc/pages/uno-r4]]はCPUがARMに変わり、メモリ容量やスピードが大幅にUPしたのがR4です。使わないのは勿体ない程の恩恵に与れます。 | ||
+ | ***ハードウェアシリアルモード [#c79aa251] | ||
+ | UARTがUSBポートと分離しているため、態々ハードウェアシリアルモードをコンソールと排他的に運用するような配慮は一切不要です。~ | ||
+ | #html{{ | ||
+ | <pre class="brush: c;"; title="avr_uno_hardserial.h"> | ||
+ | #include <stdint.h> | ||
+ | |||
+ | uint32_t us_init (uint32_t baud) { | ||
+ | Serial1.begin (baud); | ||
+ | Serial1.setTimeout (20); | ||
+ | return baud; | ||
+ | } | ||
+ | |||
+ | void us_deinit (void) { | ||
+ | Serial1.end(); | ||
+ | } | ||
+ | |||
+ | uint32_t us_setbaudrate (uint32_t baud) { | ||
+ | us_deinit(); | ||
+ | return us_init (baud); | ||
+ | } | ||
+ | |||
+ | void us_rxpurge (void) { | ||
+ | while (Serial1.available()) Serial1.read(); | ||
+ | } | ||
+ | |||
+ | void us_putc (uint8_t c) { | ||
+ | Serial1.write (c); | ||
+ | } | ||
+ | |||
+ | void us_puts (const uint8_t *buf, int len) { | ||
+ | Serial1.write (buf, len); | ||
+ | } | ||
+ | |||
+ | int us_gets (uint8_t *buf, int len) { | ||
+ | return Serial1.readBytes (buf, len); | ||
+ | } | ||
+ | |||
+ | void us_flush (void) { | ||
+ | Serial1.flush(); | ||
+ | } | ||
+ | </pre> | ||
+ | }} | ||
***注意事項 [#o2f97e11] | ***注意事項 [#o2f97e11] |