diff options
Diffstat (limited to '')
| -rw-r--r-- | project/Core/Src/Devices/UART.c | 7 | ||||
| -rw-r--r-- | project/Core/Src/Homework/hw4.c | 29 | ||||
| -rw-r--r-- | project/Core/Src/main.c | 5 |
3 files changed, 40 insertions, 1 deletions
diff --git a/project/Core/Src/Devices/UART.c b/project/Core/Src/Devices/UART.c index b1eb30c..7c11e30 100644 --- a/project/Core/Src/Devices/UART.c +++ b/project/Core/Src/Devices/UART.c @@ -108,6 +108,13 @@ uint8_t USART_Read (USART_TypeDef * USARTx) { // Reading USART_DR automatically clears the RXNE flag } +uint8_t USART_Read_Nonblocking (USART_TypeDef * USARTx) { + if (!(USARTx->ISR & USART_ISR_RXNE)) + return 0; + + return ((uint8_t)(USARTx->RDR & 0xFF)); +} + void USART_Write(USART_TypeDef * USARTx, uint8_t *buffer, uint32_t nBytes) { int i; // TXE is cleared by a write to the USART_DR register. diff --git a/project/Core/Src/Homework/hw4.c b/project/Core/Src/Homework/hw4.c new file mode 100644 index 0000000..2154cd4 --- /dev/null +++ b/project/Core/Src/Homework/hw4.c @@ -0,0 +1,29 @@ +/* + * hw4.c + * + * Created on: Oct 4, 2025 + * Author: sowgro + */ + +#include "UART.h" +#include "systick.h" +#include "LED.h" +#include <stdio.h> + + +void read_and_print_char_nonblocking() { + uint8_t ch = USART_Read_Nonblocking(USART2); + printf("%c", ch); + if (ch == '\r') { + printf("\n"); + } +} + +void hw4_run() { + init_systick(); + for (;;) { + delay_systick(); + LED_Toggle(); + read_and_print_char_nonblocking(); + } +} diff --git a/project/Core/Src/main.c b/project/Core/Src/main.c index 4063064..b95d7e3 100644 --- a/project/Core/Src/main.c +++ b/project/Core/Src/main.c @@ -8,7 +8,9 @@ #include "LED.h" #include "UART.h" #include "demo.h" +#include "activity7.h" #include <stdio.h> +#include "hw4.h" int main(void){ @@ -17,8 +19,9 @@ int main(void){ LED_Init(); UART2_Init(); + hw4_run(); // application run function // run_demo(); - activity7_run(); +// activity7_run(); } |
