Project to use Serial with registers

Dependencies:   mbed

Committer:
SimonNOWAK
Date:
Wed Apr 05 12:22:25 2017 +0000
Revision:
1:2b6896966307
Parent:
0:25823c5e440a
Child:
2:1deea3b4119e
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SimonNOWAK 0:25823c5e440a 1 #include "mbed.h"
SimonNOWAK 0:25823c5e440a 2
SimonNOWAK 0:25823c5e440a 3 void usartSetup (void) {
SimonNOWAK 0:25823c5e440a 4 RCC->IOPENR |= RCC_IOPENR_IOPAEN;
SimonNOWAK 0:25823c5e440a 5 GPIOA->ODR |= GPIO_ODR_OD9;
SimonNOWAK 0:25823c5e440a 6 RCC->APB2ENR |= RCC_APB2ENR_USART1EN; // enable clock for USART1
SimonNOWAK 0:25823c5e440a 7 USART1->BRR = 160000 / 96; // set baudrate
SimonNOWAK 1:2b6896966307 8 GPIOA->MODER &= ~GPIO_MODER_MODE9_0;
SimonNOWAK 1:2b6896966307 9 GPIOA->MODER |= GPIO_MODER_MODE9_1;
SimonNOWAK 1:2b6896966307 10
SimonNOWAK 1:2b6896966307 11 GPIOA->PUPDR |= GPIO_PUPDR_PUPD9_0;
SimonNOWAK 1:2b6896966307 12 GPIOA->PUPDR &= ~GPIO_PUPDR_PUPD9_1;
SimonNOWAK 1:2b6896966307 13 GPIOA->OTYPER &= ~GPIO_OTYPER_OT_9;
SimonNOWAK 1:2b6896966307 14 USART1->CR1 |= (USART_CR1_RE | USART_CR1_TE | USART_CR1_UE); // RX, TX enable
SimonNOWAK 0:25823c5e440a 15 }
SimonNOWAK 0:25823c5e440a 16
SimonNOWAK 0:25823c5e440a 17 void SendChar(){
SimonNOWAK 1:2b6896966307 18 Serial pc(USBTX, USBRX);
SimonNOWAK 1:2b6896966307 19 pc.printf("TXE: %02X\r\n", USART1->ISR);
SimonNOWAK 0:25823c5e440a 20 char stringtosend[4];
SimonNOWAK 0:25823c5e440a 21 stringtosend[0] = 'T';
SimonNOWAK 0:25823c5e440a 22 stringtosend[1] = 'e';
SimonNOWAK 0:25823c5e440a 23 stringtosend[2] = 'x';
SimonNOWAK 0:25823c5e440a 24 stringtosend[3] = 't';
SimonNOWAK 0:25823c5e440a 25 for(int send = 0; send < 4; send++){
SimonNOWAK 1:2b6896966307 26 while (!(USART1->ISR & (USART1->ISR | USART_ISR_TXE))){
SimonNOWAK 1:2b6896966307 27 pc.printf("TXE: %02X\r\n", USART1->ISR);
SimonNOWAK 1:2b6896966307 28 USART1->TDR = stringtosend[send];
SimonNOWAK 1:2b6896966307 29 }
SimonNOWAK 0:25823c5e440a 30 }
SimonNOWAK 0:25823c5e440a 31 }
SimonNOWAK 0:25823c5e440a 32
SimonNOWAK 0:25823c5e440a 33 int main() {
SimonNOWAK 0:25823c5e440a 34 usartSetup();
SimonNOWAK 0:25823c5e440a 35 SendChar();
SimonNOWAK 0:25823c5e440a 36 }