Я пытаюсь выполнить AT-команды из Nordic NRF52 . Я использую модуль Nordic UART со встроенной функцией под названием app_uart_put(uint8_t byte)
для ввода AT-команд в UART. Узел, который получает AT-команды, является EE-NBIoT-модулем , и он запускается на постфиксе \r\n
. Когда я запускаю следующий код, я получаю ОК.
while (app_uart_put('A') != NRF_SUCCESS);
while (app_uart_put('T') != NRF_SUCCESS);
while (app_uart_put('+') != NRF_SUCCESS);
while (app_uart_put('C') != NRF_SUCCESS);
while (app_uart_put('F') != NRF_SUCCESS);
while (app_uart_put('U') != NRF_SUCCESS);
while (app_uart_put('N') != NRF_SUCCESS);
while (app_uart_put('=') != NRF_SUCCESS);
while (app_uart_put('1') != NRF_SUCCESS);
while (app_uart_put('\r') != NRF_SUCCESS);
while (app_uart_put('\n') != NRF_SUCCESS);
Но я хочу создать более многократно используемый код, поэтому я написал следующую функцию writeCommand.
void writeCommand(char cmd[])
{
while (app_uart_put('A') != NRF_SUCCESS);
while (app_uart_put('T') != NRF_SUCCESS);
while (app_uart_put('+') != NRF_SUCCESS);
uint8_t i;
for(i = 0; cmd[i] != '\0'; i++){
while (app_uart_put(cmd[i]) != NRF_SUCCESS);
}
while (app_uart_put('\r') != NRF_SUCCESS);
while (app_uart_put('\n') != NRF_SUCCESS);
nrf_delay_ms(100);
}
Когда я запускаю эту функцию, как показано ниже, я получаю ОШИБКУ.
char cmd[] = "CFUN=1";
nrf_delay_ms(1000);
writeCommand(cmd);
Почему это не работает? Когда я смотрю на исходящие команды, они равны.