Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: serial.cpp
- Revision:
- 5:90824f533655
diff -r 357a34c10ef2 -r 90824f533655 serial.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serial.cpp Tue Oct 03 00:46:11 2017 +0000 @@ -0,0 +1,61 @@ +#include "serial.h" +//#include "io.h" +//#include "derivative.h" +#include "mbed.h" + +Serial uart(D1,D0); + +void serialSend(char c) { + while(!uart.writable()); +/* while (!(UART0_S1_REG(UART0_BASE_PTR) & UART0_S1_TDRE_MASK)); + UART0_D_REG(UART0_BASE_PTR) = c; + */ + uart.putc(c); +} +char serialRead(void) { +/* + //Verificar se h� algo dispon�vel + if ((UART0_S1_REG(UART0_BASE_PTR) & UART0_S1_RDRF_MASK)) { + //L� o registro da serial + return UART0_D_REG(UART0_BASE_PTR) ; + } else { + //C�digo para "n�o h� caracter dispon�vel" + return 0xff; + } + */ + if(uart.readable()){ + return uart.getc(); + }else{ + return 0xff; + } + //return 42; +} + +void serialInit(void) { + uart.baud(9600); +/* + unsigned int sbr_val; + //Configura os terminais D0 e D1 + PORTB_PCR1 = PORT_PCR_MUX(0x2); + PORTB_PCR2 = PORT_PCR_MUX(0x2); + //Seleciona o clock da serial a partir do clock principal da CPU + SIM_SOPT2 |= SIM_SOPT2_UART0SRC(1); + //habilita o clock para o perif�rico da UART + SIM_SCGC4 |= SIM_SCGC4_UART0_MASK; + // Desliga a UART antes de configur�-lo + UART0_C2 &= ~(UART0_C2_TE_MASK | UART0_C2_RE_MASK); + //A velocidade de transmiss�o � dada por: baudrate = sys_clock/(OSR * sbr) + // Configurando OSR para 10x + UART0_C4 = (10-1);//sempre 1 unidade a menos + //escolhendo o valor de sbr para um baudrate de 115200 + //sbr_val = (sys_clock) / (baudrate * OSR)); + sbr_val = (unsigned int) (24000000 / (115200 * 10)); + //o valor de sbr tem que ser armazenado em dois registros diferentes + //os 5 bits mais altos v�o para o UART0_BDH + UART0_BDH = ((sbr_val & 0x1F00) >> 8); + //os 8 mais baixos v�o para UART0_BDL + UART0_BDL = sbr_val & 0x00FF; + //Liga o transmissor e o receptor + UART0_C2 |= (UART0_C2_TE_MASK | UART0_C2_RE_MASK); + */ +}