aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--stm32f091/esp8266.c12
-rw-r--r--stm32f091/esp8266.h3
-rw-r--r--stm32f091/main.c6
-rw-r--r--stm32f091/makefile1
-rw-r--r--stm32f091/setup.c1
-rw-r--r--stm32f091/test.c25
-rw-r--r--stm32f091/test.h4
7 files changed, 42 insertions, 10 deletions
diff --git a/stm32f091/esp8266.c b/stm32f091/esp8266.c
index 341f052..98c4e10 100644
--- a/stm32f091/esp8266.c
+++ b/stm32f091/esp8266.c
@@ -14,6 +14,7 @@ int isOK = 0; // TODO: remove
uint16_t g_ws_esp8266_dma_old_pos = 0;
uint16_t g_ws_esp8266_dma_new_pos = 0;
+/*
// when rx receives data handle the message. this function is in stm32. this name needs to stay the same or else it wont work.
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
if(huart->Instance == USART1) {
@@ -51,14 +52,11 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
}
}
}
+*/
-void DMA1_Ch1_IRQHandler(void) {
- HAL_DMA_IRQHandler(&hdma_usart1_rx);
-}
-
-void DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler(void) {
- HAL_DMA_IRQHandler(&hdma_usart1_tx);
-}
+void DMA1_Ch1_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_usart1_rx); }
+void DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_usart1_tx); }
+void USART1_IRQHandler(void) { HAL_UART_IRQHandler(&huart1); }
void ws_esp8266_ATsendCommand(uint8_t* data){
char dataChar[20];
diff --git a/stm32f091/esp8266.h b/stm32f091/esp8266.h
index 9df02cb..d18c214 100644
--- a/stm32f091/esp8266.h
+++ b/stm32f091/esp8266.h
@@ -6,11 +6,12 @@
extern char g_ws_esp8266_dma_rx_buffer[WS_DMA_RX_BUFFER_SIZE];
-void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *, uint16_t);
+// void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *, uint16_t);
/** @brief This function handles DMA1 channel 2 to 3 and DMA2 channel 1 to 2 interrupts. */
void DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler(void);
/** @brief This function handles DMA1 channel 1 interrupt. */
void DMA1_Ch1_IRQHandler(void);
+void USART1_IRQHandler(void);
void ws_esp8266_ATsendCommand(uint8_t* data);
int ws_esp8266_checkOK(uint8_t *receiveData,int length);
diff --git a/stm32f091/main.c b/stm32f091/main.c
index ed0dacd..f5fe563 100644
--- a/stm32f091/main.c
+++ b/stm32f091/main.c
@@ -6,8 +6,12 @@
#include "setup.h"
#include "sensor.h"
+#include "test.h"
+
int main() {
ws_io_setup();
- xTaskCreate(ws_sensor_read_task, "sensor", 128, NULL, 1, NULL);
+ // xTaskCreate(ws_sensor_read_task, "sensor", 64, NULL, 1, NULL);
+ xTaskCreate(ws_test_write_task, "testw", 16, NULL, 2, NULL);
+ xTaskCreate(ws_test_read_task, "testr", 16, NULL, 2, NULL);
vTaskStartScheduler();
}
diff --git a/stm32f091/makefile b/stm32f091/makefile
index 20424c3..bf20f00 100644
--- a/stm32f091/makefile
+++ b/stm32f091/makefile
@@ -90,6 +90,7 @@ $(TARGET).elf: $(OBJS)
flash: $(TARGET).bin
st-flash write $(TARGET).bin 0x08000000
+ st-flash reset
compile_commands: clean
compiledb make -n
diff --git a/stm32f091/setup.c b/stm32f091/setup.c
index 63efd37..39cff07 100644
--- a/stm32f091/setup.c
+++ b/stm32f091/setup.c
@@ -132,7 +132,6 @@ static void ws_io_usart1_setup() {
if (HAL_UART_Init(&huart1) != HAL_OK)
return ws_setup_error_handler();
- HAL_UART_Receive_DMA(&huart1, (uint8_t*) g_ws_esp8266_dma_rx_buffer, WS_DMA_RX_BUFFER_SIZE);
__HAL_DMA_DISABLE_IT(&hdma_usart1_rx, DMA_IT_HT);
}
diff --git a/stm32f091/test.c b/stm32f091/test.c
new file mode 100644
index 0000000..4d1b936
--- /dev/null
+++ b/stm32f091/test.c
@@ -0,0 +1,25 @@
+#include <stm32f0xx_hal.h>
+#include <FreeRTOS.h>
+#include <task.h>
+
+#include "setup.h"
+
+uint8_t tx_buffer[] = "AT\r\n";
+
+void ws_test_read_task() {
+ uint8_t* buf; // TODO: not working
+ while (1) {
+ HAL_UART_Receive_DMA(&huart1, buf, 1);
+ HAL_UART_Transmit(&huart2, buf, 1, 100);
+ }
+}
+
+void ws_test_write_task() {
+ while (1) {
+ HAL_UART_Transmit_DMA(&huart1, tx_buffer, sizeof(tx_buffer));
+ __HAL_UART_ENABLE_IT(&huart1, UART_IT_TXE);
+
+ HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
+ vTaskDelay(portTICK_PERIOD_MS * 1000 * 1);
+ }
+}
diff --git a/stm32f091/test.h b/stm32f091/test.h
new file mode 100644
index 0000000..6c312d9
--- /dev/null
+++ b/stm32f091/test.h
@@ -0,0 +1,4 @@
+#pragma once
+
+void ws_test_read_task();
+void ws_test_write_task();