我已經做了一些研究,但找不到適合我的問題的解決方案。由於我現在真的沒有任何想法,以及我應該尋找什麼,如何自己解決問題,我想問你。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。這個問題應該是數組,因爲下面的代碼運作良好(它在我的智能手機寫入12X 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);
}
我期望在第一個代碼什麼是單一的AT上Blueterm,但我沒有至少有一個錯誤。
編輯:我想我提供的信息太少了,謝謝。 第一個代碼示例的行爲是,Blueterm上沒有打印任何內容。它應該是「AT」一次(HC06模塊的波特率設置爲9600,如果它通過陣列,它應該是9600)
Edit2:它只有問題部分,稍後是應該有這樣的用法,你可以得到在HC06模塊上設置的波特率(如果我沒有連接到Blueterm,「AT」使模塊用「OK」回答,但通過陣列似乎出錯了。 另外提一下,如果波特率是不是9600有什麼印上Blueterm(測試)
EDIT3:我必須道歉,與RAD雷克薩斯的提示,我發現我的代碼另一個問題(似乎是一場誤會Dave4的UART_SetBaudrate Method的方法似乎是在使用一次後設置的,所以
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);
不會打印blueterm什麼,而
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打印3X 「AT」
THX,我現在知道如何去(其中後看錯誤),並提出誤導性問題。
我必須立即完成此問題或刪除或其他?
尋求調試幫助的問題(「**爲什麼不是這個代碼工作?**」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現**所需的最短代碼** 。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – Biffen
您是否嘗試過使用9600以外的其他值進行測試? – 2016-05-14 12:54:07
我不知道如何編輯我的問題,謝謝。爲了使行爲清晰,如果我執行第一個代碼示例,它不會在Blueterm上打印任何內容。但如圖所示,第二個代碼示例是在Blueterm上打印12x「AT」(如果波特率爲9600,則應打印它) – Weiter