aboutsummaryrefslogtreecommitdiff
path: root/stm32f091/esp8266.h
blob: 66ccfba297cbe91ff7a773bfe32fe84c43a5dd9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once

#include <stm32f0xx_hal.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>

#include "consts.h"

/** @brief DMA rx buffer */
extern uint8_t g_ws_esp8266_dma_rx_buffer[WS_DMA_RX_BUFFER_SIZE];
/** @brief null-terminated tx buffer string */
extern uint8_t g_ws_esp8266_dma_tx_buffer[WS_DMA_TX_BUFFER_SIZE];

/** @brief DMA1 channel 2-3 & DMA2 channel 1-2 interrupt handler */
void DMA1_Ch2_3_DMA2_Ch1_2_IRQHandler(void);
/** @brief DMA1 channel 1 interrupt handler */
void DMA1_Ch1_IRQHandler(void);
/** @brief USART1 interrupt handler */
void USART1_IRQHandler(void);

/** @brief receive chunk complete */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef* huart);

/** @brief send data to esp over uart with dma */
void ws_esp8266_send(uint8_t* data, size_t size);

/** @brief start dma receive and reset half-transfer interrupt flag */
void ws_esp8266_start_receive();

/** @brief connect to access point using wifi.h credentials */
void ws_esp8266_connect();
/** @brief set esp to access point client mode (connect to AP, not become one) */
void ws_esp8266_ap_client_mode();
/** @brief initialize and configure the tcp server */
void ws_esp8266_start_tcp_server();

/** @brief set mac address of the esp client */
void ws_esp8266_set_mac();
/** @brief set static ip address of the esp client */
void ws_esp8266_set_ip();