arduino - Ameba - uart serial
Arduino Serial API : https://www.arduino.cc/en/reference/serial
Ameba 線路 : 參考 Ameba 大賽所公布的文件 :
UM0048 Realtek Ameba-1 EVB 3v0 User Manual_1v2_20150316
Ameba 在 Arduino SDK, default 有兩組 UART
Serial :
UART_LOG - 透過 DAP 從 USB 導出的 Serial uart . ( GPIOB_1 / GPIOB_0)
Ameba 線路 : 參考 Ameba 大賽所公布的文件 :
UM0048 Realtek Ameba-1 EVB 3v0 User Manual_1v2_20150316
Ameba 在 Arduino SDK, default 有兩組 UART
Serial :
UART_LOG - 透過 DAP 從 USB 導出的 Serial uart . ( GPIOB_1 / GPIOB_0)
Serial1 :
在 D0 / D1 腳位上的 UART RX / TX , 用的是 GPIOA_6 / GPIOA_7,
所以可以和 com port 接 pin 2 - RX / pin3 -TX/ pin 5 - GND 即可
----
int baud_rate = 9600;
void setup() {
Serial1.begin(9600);
Serial1.println("Hello, world");
}
void loop() {
static int i=0;
Serial1.print("hello ");
Serial1.println(i);
while ( Serial1.available() ) {
Serial.write(Serial1.read());
}
i++;
delay(1000);
}
----
用 usb 轉 serial 線 PC 與 Ameba 板對接
VDD 接 Ameba - 5V
GND 接 Ameba - GND
RX/TX 對接 到 D0/D1
測試程式會在 usb-serial 線的 com port 印出 Hello <秒數>
同時如果在這個視窗打字, 會透過 usb-serial 線傳給 Ameba,
再從 DAP 傳到原本 Arduino Serial (log uart)
-----
和 Arduino DUE 板子互接
首先先在 Arduino DUE 寫一個 echo 程式
void setup() {
Serial.begin(9600);
}
void loop() {
int rc;
if ( Serial.available() > 0 ) {
rc = Serial.read();
if ( rc > 0 ) Serial.write(rc);
}
}
可以用序列監控視窗敲字, 他會回應相同的字.
( 用 Arduino Uno 也可以, 或其他 uart 應用 )
接下來在 Ameba 和 Arduino 對接, Ameba D0 接 Arduino D1 / Ameba D1 接 Arduino D0
這邊 Ameba 的 Serial 就是會走 usb 到 pc com port 的
Serial1 就是 D0/D1 和 Arduino 板子對接的.
程式執行結果:
Arduino 板子的 Serial 兩邊都通. 蠻神奇的.
留言
張貼留言