TI's MQTT Demo with freertos CM4F

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers cli_uart.cpp Source File

cli_uart.cpp

00001 
00002 #include "mbed.h"
00003 #include "myBoardInit.h"
00004 #include "cli_uart.h"
00005 #include "osi.h"
00006 
00007 OsiLockObj_t    g_printLock;
00008 #if (THIS_BOARD == Seeed_Arch_Max)
00009 Serial uart(PC_6, PC_7);
00010 //Serial uart(USBTX, USBRX);
00011 #else
00012 Serial uart(p37, p31);
00013 #endif
00014 
00015 
00016 
00017 int Uart_Write(unsigned char *inBuff)
00018 {
00019     uint16_t ret, ecount, usLength = strlen((const char *)inBuff);
00020     ecount = 0;
00021     ret = 0;
00022     
00023     while(!(uart.writeable())){ecount++;if(ecount>3000)break;};
00024 
00025     if(uart.writeable()) {
00026 
00027         if(inBuff == NULL) {
00028             printf("Uart Write buffer empty\r\n");
00029             return -1;
00030         }
00031 
00032         RTOS_MUTEX_ACQUIRE(&g_printLock);
00033         ret = usLength;
00034 
00035         while (usLength) {
00036             uart.putc(*inBuff);
00037             usLength--;
00038             inBuff++;
00039         }
00040 
00041         RTOS_MUTEX_RELEASE(&g_printLock);
00042     } else {
00043         printf("Uart Write failed [uart not writeable] now trying printf\r\n");
00044         while (usLength) {
00045             printf("%c",*inBuff);
00046             usLength--;
00047             inBuff++;
00048         }
00049         return -1;
00050     }
00051     
00052     return (int)ret;
00053 
00054 }
00055 
00056 void CLI_Configure(void)
00057 {
00058     uart.baud(115200);
00059     
00060     RTOS_MUTEX_CREATE(&g_printLock);
00061 
00062 }
00063