AnsweredAssumed Answered

LPC1343 - UART - ATcommands

Question asked by Jan Dovrtel on Jan 28, 2017
Latest reply on Feb 20, 2017 by soledad

Hello!
I'm creating program when telephone (Siemens M35) rings i get information ''RING'' and after that i would like to send back some AT commands.....

 

i'm editing this program:
LPCOpen Platform: C:/nxp/v1.03/lpcopen_v1.03/lpcopen/applications/lpc13xx/examples/periph/periph_uart/uart.c Source File 

 

For now i can get the RING and send back AT^SCNI, but problem is when i try to get number with 9 chars, but LPC can take only 8 char number.... I dont know how to make it to take longer words...???

 

Working for now:

---------------------------------------------------------------------------------------------------------------------
const char inst1[] = "AT^SCNI";

 

if(key[0] == 'R' && key[1] == 'I' && key[2] == 'N' && key[3] == 'G')
{
Chip_UART_SendRB(LPC_USART, &txring, inst1, sizeof(inst1) - 1);
}
--------------------------------------------------------------------------------------------------------------------

 

NOT WORKING:

 

---------------------------------------------------------------------------------------------------------------------
const char inst2[] = "OPEN_DOOR";

if(key[0] == '1' && key[1] == '2' && key[2] == '3' && key[3] == '4' && key[4] == '5' && key[5] == '6' && key[6] == '7' && key[7] == '8' && key[8] == '9')
{
Chip_UART_SendRB(LPC_USART, &txring, inst2, sizeof(inst2) - 1);
}
---------------------------------------------------------------------------------------------------------------------

 

ANY IDEAS????




FULL PROGRAM CODE:

---------------------------------------------------------------------------------------------------------------------
#include "chip.h"
#include "board.h"
#include "string.h"

STATIC RINGBUFF_T txring, rxring;

#define UART_RB_SIZE 64

static uint8_t rxbuff[UART_RB_SIZE], txbuff[UART_RB_SIZE];

const char inst1[] = "AT^SCNI";
const char inst2[] = "OPEN_DOOR";

void UART_IRQHandler(void)
{
Chip_UART_IRQRBHandler(LPC_USART, &rxring, &txring);
}

int main(void)
{
uint8_t key[64];

Board_Init();
Board_UART_Init();

Chip_UART_Init(LPC_USART);
Chip_UART_SetBaud(LPC_USART, 115200);
Chip_UART_ConfigData(LPC_USART, (UART_LCR_WLEN8 | UART_LCR_SBS_1BIT));
Chip_UART_SetupFIFOS(LPC_USART, (UART_FCR_FIFO_EN | UART_FCR_TRG_LEV2));
Chip_UART_TXEnable(LPC_USART);

RingBuffer_Init(&rxring, rxbuff, 1, UART_RB_SIZE);
RingBuffer_Init(&txring, txbuff, 1, UART_RB_SIZE);

Chip_UART_IntEnable(LPC_USART, (UART_IER_RBRINT | UART_IER_RLSINT));

NVIC_SetPriority(UART0_IRQn, 1);
NVIC_EnableIRQ(UART0_IRQn);


while (1)
{
Chip_UART_ReadRB(LPC_USART, &rxring, &key, 32)

if(key[0] == 'R' && key[1] == 'I' && key[2] == 'N' && key[3] == 'G')
{
Chip_UART_SendRB(LPC_USART, &txring, inst1, sizeof(inst1) - 1);
}

if(key[0] == '1' && key[1] == '2' && key[2] == '3' && key[3] == '4' && key[4] == '5' && key[5] == '6' && key[6] == '7' && key[7] == '8')
{
Chip_UART_SendRB(LPC_USART, &txring, inst2, sizeof(inst2) - 1);
}


NVIC_DisableIRQ(UART0_IRQn);
Chip_UART_DeInit(LPC_USART);

return 1;
}

Outcomes