summaryrefslogtreecommitdiff
path: root/project/Core/Src
diff options
context:
space:
mode:
Diffstat (limited to 'project/Core/Src')
-rw-r--r--project/Core/Src/Devices/UART.c7
-rw-r--r--project/Core/Src/Homework/hw4.c29
-rw-r--r--project/Core/Src/main.c5
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();
}