私は、コンパイルに接続されたハイパーターミナルに定数文字列を送信するために、私のAT90USB162(Minimus USBボード)をCDCとして使用しようとしています。 は、だから私はデモコードのデモ/デバイス/ ClassDriver/VirtualSerialを持って、いくつかの変更を行わ:文字列の送信にCDCとしてLUFAを使用
- はすべて削除:
MCU = at90usb162 BOARD = MINIMUS F_CPU = 16000000
VirtualSerial.hで:メイクで
をJoystick.hに関連するエントリは、AT90USB162にはありません。
- Functonのヘッダを作成しました。SendSpecific文字列()VirtualSerial.cで
(Joystick.hに関連していた古いCheckJoystickMovement()、のと引き換えに):
SetupHardwareから():Joystick_Initまで除去呼び出し() 、新しいコードは(コメントなしで)です。メインで
void SendSpecificString(void)
{
char* ReportString = "data packet";
static bool ActionSent = false;
if ((ReportString != NULL) && (ActionSent == false))
{
ActionSent = true;
fputs(ReportString, &USBSerialStream);
}
}
そして最後に():交換が、ジョイスティック詰め込むなし、ボイドCheckJoystickMovement(ボイド)を除去し、ボイドSendSpecificString(ボイド)を作成し、最初に基づいて
void SetupHardware(void)
{
MCUSR &= ~(1 << WDRF);
wdt_disable();
clock_prescale_set(clock_div_1);
LEDs_Init();
USB_Init();
}
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