2012-05-10 8 views
2

私は現在Keil C51プログラミングでDS89C450 MCUを使用しています。シリアルポート伝送に関する助けが必要

私は、立ち下がりトリガーであるP3^2に赤外線レシーバーを取り付けました。リモコンのキーを押すたびに、割り込みがトリガされ、XまたはYのxdata(ビットごとに1バイトずつ、500バイトに1バイトずつ)に保存されます。

私は、シリアルポート経由でバッファからハイパーターミナルにデータビット( '1'または '0'のいずれか)を送信しようとしています。ただし、リモコンを押してもデータが表示されません。

誰にでも、なぜ、どのように働かせるか教えてもらえますか?

プログラムはここにある:

http://pastebin.com/hpAw2ipH

+0

送信しているデータはASCIIでエンコードされていますか、適切でないシリアル制御文字でクリーニングされていますか? HyperTerminalはこれらを表示して反応しますので、通常はバイナリデータを表示するのに最適なプログラムではありません。代わりに、バイナリシリアルポートモニタを使用してください。 – sonicwave

+0

@sonicwave Erm、いいえ、送信データはバイナリ '1'と '0'のみです。たぶん、代わりにMTKを使うべきでしょうか? – xrainxfallx

+0

[RealTerm](http://realterm.sourceforge.net/)にお試しください。ハイパーターミナルで動かない場合は、データをASCII 16進表現に変換してデバッグすることができます。 –

答えて

1

Googleの "ターミナルのBR @ yで"、それはHEXでシリアル途切れを表示することができます。ほとんどのUARTは1ビットを送信することはできません。むしろ、スタート/ストップ/パリティビット(8ビット、パリティなし、1ストップビットがユニバーサルデフォルト)を持つNビット、通常は7または8の文字を送信します。データをASCIIでエンコードしたり、スタート/ストップ文字を使用したりして、実際のデータをいつ取得するかを知ることができます。

詳細については、オシロスコープBusPirateまたはLogicSniffer(DangerousPrototypes.com)を使用して通信データをスニッフィングしてください。

関連する問題