Simon NOWAK
/
RegistreSerial
Project to use Serial with registers
Diff: main.cpp
- Revision:
- 1:2b6896966307
- Parent:
- 0:25823c5e440a
- Child:
- 2:1deea3b4119e
--- a/main.cpp Wed Apr 05 09:00:25 2017 +0000 +++ b/main.cpp Wed Apr 05 12:22:25 2017 +0000 @@ -5,19 +5,28 @@ GPIOA->ODR |= GPIO_ODR_OD9; RCC->APB2ENR |= RCC_APB2ENR_USART1EN; // enable clock for USART1 USART1->BRR = 160000 / 96; // set baudrate - USART1->CR1 |= (USART_CR1_RE | USART_CR1_TE); // RX, TX enable - USART1->CR1 |= USART_CR1_UE; // USART enable + GPIOA->MODER &= ~GPIO_MODER_MODE9_0; + GPIOA->MODER |= GPIO_MODER_MODE9_1; + + GPIOA->PUPDR |= GPIO_PUPDR_PUPD9_0; + GPIOA->PUPDR &= ~GPIO_PUPDR_PUPD9_1; + GPIOA->OTYPER &= ~GPIO_OTYPER_OT_9; + USART1->CR1 |= (USART_CR1_RE | USART_CR1_TE | USART_CR1_UE); // RX, TX enable } void SendChar(){ - while (!(USART1->ISR & (USART1->ISR | USART_ISR_TXE))); + Serial pc(USBTX, USBRX); + pc.printf("TXE: %02X\r\n", USART1->ISR); char stringtosend[4]; stringtosend[0] = 'T'; stringtosend[1] = 'e'; stringtosend[2] = 'x'; stringtosend[3] = 't'; for(int send = 0; send < 4; send++){ - USART1->TDR = stringtosend[send]; + while (!(USART1->ISR & (USART1->ISR | USART_ISR_TXE))){ + pc.printf("TXE: %02X\r\n", USART1->ISR); + USART1->TDR = stringtosend[send]; + } } }