-2
PC와 PC MCU PIC간에 RS-232 통신을하려고합니다. 그래서 저는 C++로 PC 프로그램을 만들기 시작했고, 오류가 없었습니다. 그리고 cout
에 따르면, 나는 그것이 작동해야하는 상태를 출력하기 위해 만들었지 만, 저는 확신하고 싶었습니다. 그래서 하이퍼 터미널을 다운로드하고 직렬 COM 포트의 Rx 핀에 Tx를 연결했습니다.하지만 하이퍼 터미널을 연결할 때마다 내 C++ 프로그램을 실행하려고 할 때 access denied (error 5)
이라고 말하면서 오류가 발생합니다. 문제가 실제로 어디 있는지 이해할 수 없습니다. 문제는 코드의, 그냥 확인했다 경우 여기에 전체 코드는 다음과 같습니다하이퍼 터미널 연결시 C++ 포트를 통해 데이터를 전송할 수 없습니다.
을 main.c : 한 번에
#include <windows.h>
#include <winbase.h>
#include <iostream>
PDWORD sent;
char buf;
int main(){
DCB serial;
HANDLE hserial = CreateFile("\\\\.\\COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
serial.DCBlength = sizeof(DCB);
serial.BaudRate = CBR_9600;
serial.fBinary = true;
serial.fParity = false;
serial.ByteSize = 8;
serial.Parity = NOPARITY;
serial.StopBits = ONESTOPBIT;
char result = BuildCommDCB("baud=9600 parity=N data=8 stop=1", &serial);
if(result != 0){
std::cout << "DCB Structure Successfully Created!" << std::endl;
}else{
std::cout << "DCB Structure Creation Failed!" << std::endl;
}
if(hserial != INVALID_HANDLE_VALUE){
std::cout << "COM Port Handle Successfully Created!" << std::endl;
}else{
std::cout << "COM Port Handle Creation Failed!" << std::endl;
std::cout << GetLastError() << std::endl;
}
char res = WriteFile(hserial, "0xFF", 1, sent, NULL);
if(res != 0){
std::cout << "Writing to COM Port Successfull!" << std::endl;
}else{
std::cout << "Writing to COM Port Failed!" << std::endl;
std::cout << GetLastError() << std::endl;
}
CloseHandle(&hserial);
return 0;
}