私はいくつかの研究を行ったが、私の問題のための適切な解決策を見つけることができなかった。私は本当に何のアイデアからも外れているので、私が探し求めるべきことは、問題を自分で解決する方法として、私はあなたに尋ねたいと思う。Cでの配列使用
私はCを初めて使っているので、あまりにも愚かな初心者の質問ではないことを願っていますが、実際に修正する方法はわかりません。
それが起こって取得しようと、私は、次のコードに問題を区切りながら:あなたにいくつかのより多くの情報を与えるために
uint32_t possibleBaudrates[12] =
{
1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1382400
};
uint8_t AT[2] = {'A', 'T'};
for(uint8_t i = 0; i < 12; ++i)
{
UART_SetBaudrate(&UART_0, possibleBaudrates[i], 16);
delay(1000000);
UART_Transmit(&UART_0, AT, 2);
}
、私はHC06モジュールのボーレートを設定しようとしています。これをテストするために、ATを私のスマートフォンのBluetermに送ります。私は最初のコードに期待するもの
uint32_t possibleBaudrates[12] =
{
1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1382400
};
uint8_t AT[2] = {'A', 'T'};
for(uint8_t i = 0; i < 12; ++i)
{
UART_SetBaudrate(&UART_0, 9600, 16);
delay(1000000);
UART_Transmit(&UART_0, AT, 2);
}
はBlueterm上の単一のATですが、私はやった:次のコードは、(それが私のスマートフォンにBluetermに12倍ATを書き込み)うまく機能しているため、問題は、配列でなければなりません少なくとも1つの間違い。
編集:私はあまりにも少ない情報を与えたと思います。 最初のコード例の動作は、Bluetermに何も印刷されていないことです。 「AT」は1回でなければなりません(HC06モジュールのボーレートは9600に設定され、アレイを通過する場合は9600になるはずです)
Edit2:問題のあるセクションのみが後で表示されます私がBluetermに接続していない場合、 "AT"はモジュールを "OK"で答えさせますが、配列を通ることは間違っているようです。) さらに、Baudrateが9600でない場合、Blueterm(テスト済み)には何も印刷されていません。
Edit3:私のコードに別の問題が見つかりました。誤解のようですDave4のUART_SetBaudrateメソッドのうち、一度使用した後に設定されるようだから、
UART_SetBaudrate(&UART_0, 2400, 16);
delay(10000000);
UART_Transmit(&UART_0, AT, 2);
UART_SetBaudrate(&UART_0, 9600, 16);
delay(10000000);
UART_Transmit(&UART_0, AT, 2);
UART_SetBaudrate(&UART_0, 9600, 16);
delay(10000000);
UART_Transmit(&UART_0, AT, 2);
文句を言わない
UART_SetBaudrate(&UART_0, 9400, 16);
delay(10000000);
UART_Transmit(&UART_0, AT, 2);
UART_SetBaudrate(&UART_0, 2400, 16);
delay(10000000);
UART_Transmit(&UART_0, AT, 2);
UART_SetBaudrate(&UART_0, 4800, 16);
delay(10000000);
UART_Transmit(&UART_0, AT, 2);
は事前にblueterm
Thxを上 "AT" 3X印刷されている間、私は今、どこの世話をする(上に行く方法を知っている、bluetermに何かを印刷します誤解を招くような質問のために悲しい。
今すぐこの質問を終了するか、または何かを削除する必要がありますか?
デバッグのヘルプ( "**なぜこのコードは動作しないのですか?**")には、問題の内容、特定の問題またはエラー、およびそれを再現するのに必要な最短コードが含まれている必要があります** 。 **明確な問題文**のない質問は他の読者には役に立たない。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) – Biffen
9600以外の値を試してみましたか? –
私は自分の質問を編集する方法を知らない。動作を明確にするために、最初のコード例を実行するとBluetermに何も印刷されません。しかし、示されているように、2番目のコード例ではBluetermに12x "AT"を印刷しています(Baudrateが9600の場合はそれを印刷する必要があります) – Weiter