Simon NOWAK
/
RegistreSerial
Project to use Serial with registers
main.cpp@1:2b6896966307, 2017-04-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |