この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 7636|答える: 0

Zigbee Journey(5):いくつかの重要なCC2430基本実験 - シリアル通信

[リンクをコピー]
掲載地 2014/10/30 23:18:18 | | | |
1. 上層と下層の接続

無線センシングネットワークでは、CC2430は収集したデータをホストコンピュータ(すなわちPC)に送って処理し、ホストコンピュータは制御情報をCC2430に送信する必要があります。 これらすべては、両者間の情報伝達と切り離せないものです。 このセクションでは、PCとCC2430間のシリアルポート通信の実装方法を学びます。

CC2430には2つのシリアル通信インターフェースが含まれていますUSART0そしてUSART1各シリアルポートには2つのモードがあります:UART(非同期)モード、SPI(同期)モード、このセクションではUARTモードのみを扱います)。

2. シリアルポート通信実験(1) 実験への導入

開発ボードとPC間の通信を実現する:PCは特定の文字列をCC2430に送り、CC2430はそれを受信した後にPCに返します。

(2) 実験的準備

コードを書き始める前に、ハードウェアのセットアップが必要です:正しい接続+USBシリアルドライバーのインストール。

2つのハードウェア接続が必要です:

    CC2430開発ボードのJTAGポートは、デバッガ→PCのUSBポート→(プログラムのデバッグやダウンロード用)

    CC2430開発ボードのシリアルポート→PCのUSBポート(PCとCC2430間のデータ通信用)

その後、USBからシリアルへのドライバーをインストールする必要があります(ダウンロードアドレス

シリアルポートにデータを送るためには、シリアルポートデバッグツール(ダウンロードアドレス)。

(3) プログラムフローチャート

(4) 実験的ソースコードと解析/*
  実験的な説明:UART0、ボーレート115200bps、PCが文字列をCC2430に送信(末尾は@文字)、CC2430は受信後に文字列を返します
*/

#include

署名なし チャーrecv_buf[300] = {0};
署名なし チャーrecv_count =0;


/*系统时钟初始化
-------------------------------------------------------*/
虚無xtal_init(虚無)
{
  眠り &= ~0x04;            //都上电
  ただし(! (眠りと0x40));     //晶体振荡器开启且稳定
  CLKCON &= ~0x47;            32MHzのクリスタルオシレーターを選びましょう
  眠り |=0x04;
}

/*UART0通信初始化
-------------------------------------------------------*/
虚無Uart0Init(署名なし チャーStopBits、署名なし チャーパリティ)
{
   PERCFG&= ~0x01;                  最初のオプション位置としてUART0を選択し、すなわちRXDからP0.2、TXDからP0.3へ
   P0SEL |=  0x0C;                  //初始化UART0端口,设置P0.2与P0.3为外部设备IO口

   U0CSR =0xC0;                    UARTモードに設定し、受信機を有効にしてください
   
   U0GCR = 11;
   U0ボー = 216;                     UART0のボーレートを115200bpsに設定してください。なぜ216bpsと11bpsなのかはCC2430中国語マニュアルを参照してください
   
   U0UCR |= StopBits|パリティ;        //设置停止位与奇偶校验
}

/*UART0发送数据
-------------------------------------------------------*/
虚無  Uart0Send(署名なし チャーデータ)
{
  ただし(U0CSR&0x01);   //等待UART空闲时发送数据
  U0DBUF = data;
}

/*UART0发送字符串
-------------------------------------------------------*/
虚無Uart0SendString(署名なし チャー*s)
{
  ただし(*s !=0)         //依次发送字符串s中的每个字符
    Uart0Send(*s++);
}

/*UART0接受数据
-------------------------------------------------------*/
署名なし チャーUart0Receive(虚無)
{
  署名なし チャーデータ;
  ただし(! (U0CSR&0x04));//查询是否收到数据,否则继续等待
  data=U0DBUF;         //提取接收到的数据
  帰還データ;         
}

/*主函数
-------------------------------------------------------*/
虚無メイン(虚無)
{
  署名なし チャーi,b;
  
  xtal_init();

  Uart0Init(0x00,0x00);  //初始化UART0,设置1个停止位,无奇偶校验
  Uart0SendString(「入力文字列は『@』で終わる!");

  recv_count =0;
  
  ただし(1)
  {
    ただし(1)                           
    {
      b = Uart0Receive(); UART
      もし(b=='@')休憩;                 もし「@」が受信されると、ループから飛び出して文字列を出力します

      recv_buf[recv_count] = b;        もしそれが「@」でなければ、文字配列recv_buf[] に文字を追加し続けてください
      recv_count++;
    }
    に対して(i=0; i<recv_count; i++)="" [color="RGB(0," 136,="" 0)]="" 出力文字列[="" i][="" color
      Uart0Send(recv_buf);
   
    Uart0SendString("");
    recv_count =0;                     //重置
  }
}

まず、USART0に対応するI/Oポートを設定し、ペアをパスしますPECFRG.0UART0をオプションのポジション1、すなわちRXD用にP0.2、TXD用にP0.3に設定します。 次にP0.2とP0.3を外部デバイスI/Oとして設定します。

次にUARTモードを選択し、受信機を有効にします。 次にUSART0のパラメータを設定します:ボーレート115200、パリティなし、ストップビット1。

次にPCに文字列を送ります:Please Input文字列は'@'! そして、while(1) を使ってすべての文字を受信させ続けます。 このキャラクターがそれをしないとき'@'入力が不完全であり、この文字を文字配列に加え続けることを意味しますrecv_buf; このキャラクターはまさに完璧です'@'入力が完了したため、recv_buf内の各文字がPCに送られるようにループが送られ、recv_countがリセットされます。

(5) 実験結果

まず、ハードウェア接続を完了し、シリアルポートデバッグツールを開き、以下のようにパラメータを設定します。

「Open Serial Port」をクリックし、IARデバッグを開始し、プログラムを実行させると、シリアルポートデバッグツールの受信欄に期待される文字列が表示されます。

次に、シリアルポートデバッグツールの下にある送信テキストボックスに「Hello」と入力します(以下のように):

「送信」をクリックした後、なぜCC2430が入力した内容を返さないのか疑問に思うかもしれません。なぜなら、あなたは@で終わっていなかったからです。

もう一度「Zigbee!@」と入力し、「送信」をクリックすると、結果はこんな感じになります:

予想されるコンテンツ「Hello Zigbee!」が表示されます。 おしまいです! これで実験は終わり~

3. 結論

この記事では、CC2430開発ボードとホストコンピュータ間の通信について説明します。 シリアル通信の基本がわかったところで、次のセクションでADC(アナログからデジタルへの変換)シングルサンプリングについて学びましょう。 ADCを使えば、開発ボード上の温度センサーの値を集め、その温度値をシリアルポート経由でPCに送信して表示できます。






先の:Zigbee Journey(4):いくつかの重要なCC2430基本実験 - タイマーの中断
次に:Zigbee Journey(6):いくつかの重要なCC2430基本実験 - ADC単一サンプリング
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com