2017-12-17 8 views
1

現在、PICを学習しています。私はPIC18F46K22を使用しています。 Bluetooth HC06モジュールを使用して、電話からPICにコマンドを送信したいと考えています。 Arduinoでは、すべて正常に動作します。しかし、私はPICに切り替えると、それは動作していません。接続していますが、RxとTxは実行しません。 arduinoコードと比較した後、私が見る唯一の問題はblueoothの初期化です。私はBluetoothのTxとRxのピンをそれぞれPICのRxとTxに接続しました。私が読んだウェブサイトはすべて同じで、私はすでにそれらを試していたので、私は何がすべきかわからない。どうぞ、問題点の助けを借りてください。 これは私のコードですBlueooth HC06とPIC18Fとのインターフェイス

char receive; 
    void main(){ 

      TRISA=0x00; 
      ANSELA=0; 
      PORTA.F0=0; 
      UART1_Init(9600); 
      Delay_ms(100); 

      while(1){ 

      if (UART1_Data_Ready()) { 
      receive = UART1_Read(); 
       if (receive=='1') { 
        PORTA.F0=1; 
       } 
       else{ 
       PORTA.F0=0; 
         } 

          } 
            } 
             } 

答えて

0

まず、どのコンパイラを使用しているのですか?あなたはあなたのコードをデバッグしましたか?時計の設定が間違っている可能性があります。そして、間違ったボーレートを設定することになります。 uartの初期化を確認してください。

+0

ありがとうございます。私はmicroCコンパイラを使用しています。この言語はPIC用のmicroCです。あなたがコードで見ることができる私のボーレートは9600です。同じボーレートはArduinoでも働きます。私は高かったが、それも仕事をしなかった。あなたの経験から、間違いはUARTの初期化や何かのようですか? –

+0

まず、受信データを調べる必要がありますか?変数「受信」を監視します。また、あなたのUART設定はどこですか?私はinitに1つの関数しか見ることができません。時計の設定を構成することができます。 –

0

あなたは非常に簡単な間違いを抱えており、それが問題になるはずです。 PORTCは、デフォルトではアナログポートとして初期化されています。したがって、TxピンとRxピンは機能しません。 PORTCをアナログ(デジタルとして設定)として無効にするには、PIC18F46K22を使用して、機能はANSELC=0; になります。

+0

ありがとう!出来た!あなたの助けは大変ありがとう! –

関連する問題