Question
sending data problem LWIP without RTOS
Hello,
I am trying to send data periodically as a client in MCU.I am using program called SocketTest v 3.0.0 from PC.Connection is OK but I can't see other values.These are my codes.
---------------------in main.c------------------------
#include "main.h"
#include "lwip.h"
#include "usart.h"
#include "gpio.h"
void SystemClock_Config(void);
void Soft_Timer0(uint32_t timeMs);
extern struct netif gnetif;
extern struct tcp_pcb *echoclient_pcb;
uint32_t softTimer0=0;
volatile uint8_t a=0;
char str[10] = "123456789";
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_LWIP_Init();
MX_USART1_UART_Init();
User_Notification(&gnetif);
while (1)
{
MX_LWIP_Process();
DHCP_Periodic_Handle(&gnetif);
if(a) Soft_Timer0(2000);
}
}
/*******************************************************************************/
void Soft_Timer0(uint32_t timeMs)
{
static uint8_t cnt=0;
err_t wr_err = ERR_OK;
if(HAL_GetTick() - softTimer0 > timeMs)
{
softTimer0 = HAL_GetTick();
tcp_write(echoclient_pcb, &str[cnt], 1, 0x01);
wr_err = tcp_output(echoclient_pcb);
if(wr_err == ERR_OK)
{
cnt++;
if(cnt == 9) cnt = 0;
}
}
}
/*******************************************************************************/
void EXTI0_IRQHandler(void)
{
err_t err=ERR_CONN;
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
err = tcp_echoclient_connect();
if(err == ERR_OK)
{
tcp_write(echoclient_pcb, "\n", 1, 0x01);
tcp_output(echoclient_pcb);
a = 1;
softTimer0 = HAL_GetTick();
}
}