Ch1_5. 시리얼로 PC 연결하기

mbed 마이크로컨트롤러는 호스트 PC와 일반적으로 사용되는 USB를 통해 "USB 가상 시리얼포트"로 프로그램을 전송하는등의 통신을 할수 있다.

가능한 작업들은:

  • 호스트PC 터미널에 메세지를 출력하기
  • 호스트PC의 키보드로 부터 입력하기
  • 호스트PC에서 가동되는 응용프로그램 과 프로그래밍 언어(perl, python, java등)와 시리얼 포트를 통해 통신하기

1. mbed 윈도우 시리얼포트 드라이버를 다운로드한다

Download latest driver

2. 인스톨러를 실행한다

mbed를 연결하고 익스프폴러를 닫고 인스트롤러를 실행한다.
시간이 조금소요되며 ,'unsigned driver'를 경고가 몇번 팝업되지만 잠시후 시리얼포트가 연결됩니다.

3. 터미널 응용프로그램을 인스톨합니다.

Download and install a Terminal application.

TeraTerm

4. Connection을 셋팅합니다.

Teraterm을 오픈하고 셋업합니다. •File -> New Connection (or just press Alt+N) •''Serial'' 라디오버튼을 선택하고 메뉴에서'' mbed Serial Port''를 선택한다. •''OK''를 클릭한다

500

New-line 포맷을 셋업한다.(새 문자라인을 바르게 출력하기위해서..) •Setup -> Terminal... •"New-line"을 클릭하여 Receive to "LF"로 셋업한다.

500
500

Hello World!

Hello

#include "mbed.h"              

Serial pc(USBTX, USBRX); // tx, rx

int main() {
    pc.printf("Hello World!\n");
}

상세 내용

USB 시리얼포트로 통신하려면 표준 시리얼 임터페이스를 통해 내부 (USBTX, USBRX)핀을 USB 시리얼포트에 간단히 지정해 주면 된다.

시리얼포트의 디폴트 값은 9600 baud standard serial connection (8 bits, 1 stop bit, no parity)이며 PC도 같은 값으로 지정해야한다.만약 다른 지정을 원한다면 시리얼 인터페이스와 호스트PC 양쪽을 같은 값으로 바꿔줘야 한다.

Examples

Echo

#include "mbed.h"              

Serial pc(USBTX, USBRX);

int main() {
    pc.printf("Echoes back to the screen anything you type\n");
    while(1) {
        pc.putc(pc.getc());
    }
}

Connect

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx
PwmOut led(LED1);

float brightness = 0.0;

int main() {
    pc.printf("Press 'u' to turn LED1 brightness up, 'd' to turn it down\n");

    while(1) {
        char c = pc.getc();
        if((c == 'u') && (brightness < 0.5)) {
            brightness += 0.01;
            led = brightness;
        }
        if((c == 'd') && (brightness > 0.0)) {
            brightness -= 0.01;
            led = brightness;
        } 

    }
}

Pass

#include "mbed.h"

Serial pc(USBTX, USBRX);
Serial uart(p28, p27);

DigitalOut pc_activity(LED1);
DigitalOut uart_activity(LED2);

int main() {
    while(1) {
        if(pc.readable()) {
            uart.putc(pc.getc());
            pc_activity = !pc_activity;
        }
        if(uart.readable()) {
            pc.putc(uart.getc());
            uart_activity = !uart_activity;
        }
    }
}

The

#include "mbed.h"

int main() {
    printf("Hello World!\n");
}


Please log in to post comments.