[VC++2005]초간단 시리얼 포트 제어 예제
인터페이스용 PC프프로그램을 작성한다면 Visual Sudio .net을 이용하면 상당히 편리하다.
[VC++2005]는 C++을 이용하면서 기존 VC++6.0에서 상당히 불편했던 인터페이스 부분을 VB와 같이 편리하게 작성할 수 있도록 만들어 졌다.
예전 VC++에서 노가다를 생각하면...
물론 내부를 깊이 들어가기는 더 힘들게 막아둬서 표준을 따르지 않으면 정말 손도 못되도록 해 두었지만...
아무튼 간단한 인터페이스용 프로그램을 작성하기에는 쉽고 빠르게 접근가능한 VS .net를 이용하여 시리얼 포트로 간단한 마이컴을 제어하는 예제를 작성해 보겠다.
[VC++2005] 를 실행시키고 간단한 폼을 작성해 보자. 마치 VB를 보는듯 하고 정말 편리하게 잘 되어 있다. 게다가 무료라니...
버튼올리고 출력용 라벨올리고.... 그리고 쉽게 제어가능한 시리얼포트 컴포넌트도 하나 올리자
PC쪽 프로그램
정말 직관적이고 간단하다. 예전에는 직접 디바이스 드라이버 호출하고 핸들열어 버퍼 쓰고, 읽고, 설정정 해주어야 해던 작업인데... 간단히 몇개의 함수로 끝난다.
초기화 - 시리얼 포트 열기
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
serialPort1->Open();
}
시리얼 포트로 데이터 전송 - Write() 메소드 사용
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
serialPort1->Write("1");
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e)
{
serialPort1->Write("2");
}
마이컴쪽 펌웨어
int main(void) { SystemInit(); //Serial Init DebugInit(BAUD_115200); DebugPrint("Serial Test Program.\r\n"); Led1Init(); Led1On(); while(1) { if(DebugIsByte()) { switch(DebugGetByte()) { case '1': DebugPrint("LED1 On\r\n"); Led1On(); break; case '2': DebugPrint("LED1 Off\r\n"); Led1Off(); break; } } } } |
시리얼 통신 테스트 동영상 - Visual C++ .net 시리얼 포트를 이용한 마이컴 제어
MCU는 Microchip 의 dsPIC 을 이용하였다.