Alexandre Lemay / Mbed 2 deprecated APP1_s5_A17

Dependencies:   mbed MMA8452

Committer:
ThierryLeonard
Date:
Tue Sep 05 10:27:28 2017 +0000
Revision:
9:b9ac1d914762
Parent:
7:b1b4db3eedb4
Child:
11:09317efe9bb5
Merged, working UART with accelerometer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ThierryLeonard 7:b1b4db3eedb4 1 #ifndef COMMUART_H
ThierryLeonard 7:b1b4db3eedb4 2 #define COMMUART_H
ThierryLeonard 7:b1b4db3eedb4 3
ThierryLeonard 7:b1b4db3eedb4 4
ThierryLeonard 7:b1b4db3eedb4 5 #include "mbed.h"
ThierryLeonard 7:b1b4db3eedb4 6 #include "LPC17xx.h"
ThierryLeonard 7:b1b4db3eedb4 7
ThierryLeonard 7:b1b4db3eedb4 8 class CommUART3
ThierryLeonard 7:b1b4db3eedb4 9 {
ThierryLeonard 7:b1b4db3eedb4 10 public:
ThierryLeonard 7:b1b4db3eedb4 11 CommUART3()
ThierryLeonard 7:b1b4db3eedb4 12 {
ThierryLeonard 7:b1b4db3eedb4 13 // Power
ThierryLeonard 7:b1b4db3eedb4 14 LPC_SC->PCONP |= (1 << 25) ;//0x400F C0C4 -> PCUART3
ThierryLeonard 7:b1b4db3eedb4 15 // Peripheral clock selection -> CCLK
ThierryLeonard 7:b1b4db3eedb4 16
ThierryLeonard 7:b1b4db3eedb4 17 // DLab enable divide latch
ThierryLeonard 7:b1b4db3eedb4 18 LPC_UART3->LCR |= (1 << 7);
ThierryLeonard 7:b1b4db3eedb4 19
ThierryLeonard 9:b9ac1d914762 20 //Default Baud rate of 9600 in serial segment
ThierryLeonard 7:b1b4db3eedb4 21 // MSB of baud rate divisor
ThierryLeonard 7:b1b4db3eedb4 22 LPC_UART3->DLM = 0x2;
ThierryLeonard 7:b1b4db3eedb4 23 // MLB of baud rate divisor
ThierryLeonard 7:b1b4db3eedb4 24 LPC_UART3->DLL = 0x71;
ThierryLeonard 7:b1b4db3eedb4 25
ThierryLeonard 7:b1b4db3eedb4 26 // want 8-bit characters
ThierryLeonard 7:b1b4db3eedb4 27 LPC_UART3->LCR = 3;
ThierryLeonard 7:b1b4db3eedb4 28
ThierryLeonard 7:b1b4db3eedb4 29 // Enable FIFO
ThierryLeonard 7:b1b4db3eedb4 30 LPC_UART3->FCR = 1;
ThierryLeonard 7:b1b4db3eedb4 31
ThierryLeonard 7:b1b4db3eedb4 32 // PINSEL0 1:0 : mode p9 ->
ThierryLeonard 7:b1b4db3eedb4 33 LPC_PINCON->PINSEL0 &= ~3;
ThierryLeonard 7:b1b4db3eedb4 34 LPC_PINCON->PINSEL0 |= 2;
ThierryLeonard 7:b1b4db3eedb4 35 LPC_SC->PCLKSEL1 &= ~ (3 << 18 ) ; // clear the bits 18-19
ThierryLeonard 7:b1b4db3eedb4 36 LPC_SC->PCLKSEL1 |= 1 << 18 ;//0x400F C1AC -> PCLK_UART3 =01
ThierryLeonard 7:b1b4db3eedb4 37
ThierryLeonard 7:b1b4db3eedb4 38 }
ThierryLeonard 7:b1b4db3eedb4 39
ThierryLeonard 7:b1b4db3eedb4 40 void write(char ch)
ThierryLeonard 7:b1b4db3eedb4 41 {
ThierryLeonard 7:b1b4db3eedb4 42 LPC_UART3->TER = 0x80;
ThierryLeonard 7:b1b4db3eedb4 43 Serial pc(USBTX, USBRX);
ThierryLeonard 7:b1b4db3eedb4 44 pc.printf("%c", ch);
ThierryLeonard 7:b1b4db3eedb4 45 LPC_UART3->THR = ch;
ThierryLeonard 7:b1b4db3eedb4 46 }
ThierryLeonard 7:b1b4db3eedb4 47 void write(char* ch, int length, char* unused, int unused2)
ThierryLeonard 7:b1b4db3eedb4 48 {
ThierryLeonard 7:b1b4db3eedb4 49 Serial pc(USBTX, USBRX);
ThierryLeonard 7:b1b4db3eedb4 50 pc.printf("rip");
ThierryLeonard 7:b1b4db3eedb4 51 for(int i = 0 ; i < length ; i ++)
ThierryLeonard 7:b1b4db3eedb4 52 {
ThierryLeonard 7:b1b4db3eedb4 53 write(ch[i]);
ThierryLeonard 7:b1b4db3eedb4 54 }
ThierryLeonard 7:b1b4db3eedb4 55 }
ThierryLeonard 7:b1b4db3eedb4 56
ThierryLeonard 7:b1b4db3eedb4 57
ThierryLeonard 7:b1b4db3eedb4 58 private:
ThierryLeonard 7:b1b4db3eedb4 59 };
ThierryLeonard 7:b1b4db3eedb4 60
ThierryLeonard 7:b1b4db3eedb4 61
ThierryLeonard 7:b1b4db3eedb4 62
ThierryLeonard 7:b1b4db3eedb4 63
ThierryLeonard 7:b1b4db3eedb4 64 #endif