comport에 연결된 하이퍼 터미널에 상수 문자열을 보내기 위해 CD90으로 내 AT90USB162 (Minimus USB 보드)를 사용하려고합니다. 그래서 나는 데모 코드 데모/장치/ClassDriver/VirtualSerial있어 일부 변경했다 :LUFA를 문자열 전송을위한 CDC로 사용합니다.
- 모두 제거 :
MCU = at90usb162 BOARD = MINIMUS F_CPU = 16000000
VirtualSerial.h에서 : 메이크에서
을 Joystick.h와 관련된 항목은 AT90USB162가 없기 때문에
- Functon의 머리글을 만들었습니다. SendSpecific 문자열()합니다 (Joystick.h에 관련이 이전 CheckJoystickMovement()의 교환) VirtualSerial.c에서
:
SetupHardware()에서: Joystick_Init 제거()를 호출 , 그래서 새로운 코드는 (코멘트가 없다).
void SetupHardware(void)
{
MCUSR &= ~(1 << WDRF);
wdt_disable();
clock_prescale_set(clock_div_1);
LEDs_Init();
USB_Init();
}
는 공극 CheckJoystickMovement (공극)를 제거하고, 최초에 기초 공극 SendSpecificString (공극)을 만들지 만, 조이스틱 거즈없이 : 최종적 void SendSpecificString(void)
{
char* ReportString = "data packet";
static bool ActionSent = false;
if ((ReportString != NULL) && (ActionSent == false))
{
ActionSent = true;
fputs(ReportString, &USBSerialStream);
}
}
그리고 main()을 다음 교환 CheckJoystickMovement() void SendSpecificString() 호출을 호출합니다.
int main(void)
{
SetupHardware();
CDC_Device_CreateStream(&VirtualSerial_CDC_Interface, &USBSerialStream);
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
sei();
for (;;)
{
SendSpecificString();
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
USB_USBTask();
}
}
그래서 코드가 빌드되어 AT90USB162에 굽혀서 사용하도록 설정합니다. comport (제 경우에는 # 6)가 나타나고 하이퍼 터미널에서 연결할 수 있습니다. (대부분 HypoTerminal을 사용하고 있지만 Microsoft HyperTerminal에서는 같은 결과가 나타납니다). 내가 comport에 연결할 때 터미널은 예상대로 멈추지 않는다.하지만 ReportString = "data packet"문자열이 계속 하이퍼 터미널에 나타나지만 실제로 아무 것도 나타나지 않을 것으로 예상했다. 그럼, 내가 뭘 놓칠까요?
감사합니다.
터미널 프로그램의 비트 전송률이 MCU 보드의 전송률과 일치하는지 확인하십시오. –
예. 일치합니다. – Rego