Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
2dc7c95b7a |
|
@ -23,7 +23,8 @@
|
|||
#define __MAIN_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
|
@ -36,16 +37,21 @@ extern "C" {
|
|||
#include "tcpserverc.h"
|
||||
#include "leds.h"
|
||||
#include <string.h>
|
||||
/* USER CODE END Includes */
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ET */
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ET */
|
||||
extern uint8_t tcp_echo_flags_hart1;
|
||||
extern uint8_t tcp_echo_flags_hart2;
|
||||
extern uint8_t tcp_echo_flags_ble1;
|
||||
extern uint8_t tcp_echo_flags_ble2;
|
||||
extern uint8_t tcp_echo_flags_control;
|
||||
extern uint8_t send_data_flag_cmd;
|
||||
|
||||
extern uint8_t uart_echo_flags_hart1;
|
||||
extern uint8_t uart_echo_flags_hart2;
|
||||
extern uint8_t uart_echo_flags_ble1;
|
||||
extern uint8_t uart_echo_flags_ble2;
|
||||
#define ARRAY_LEN(arr) (sizeof(arr)) / (sizeof(arr[0]))
|
||||
typedef struct
|
||||
{
|
||||
|
@ -73,20 +79,20 @@ extern "C" {
|
|||
|
||||
#define LOCAL_PORT 5001
|
||||
|
||||
/* USER CODE END ET */
|
||||
/* USER CODE END ET */
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
|
||||
/* USER CODE END EC */
|
||||
/* USER CODE END EC */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
|
||||
/* USER CODE END EM */
|
||||
/* USER CODE END EM */
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void Error_Handler(void);
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void Error_Handler(void);
|
||||
|
||||
/* USER CODE BEGIN EFP */
|
||||
#define ENCODE_TIM8 1
|
||||
|
@ -190,7 +196,7 @@ void Error_Handler(void);
|
|||
/* USER CODE BEGIN Private defines */
|
||||
#define TRUE 0
|
||||
#define FAIL -1
|
||||
/* USER CODE END Private defines */
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -80,18 +80,18 @@ extern struct tcp_pcb *server_pcb_control;
|
|||
extern void tcp_abort(struct tcp_pcb *pcb);
|
||||
/* USER CODE END FunctionPrototypes */
|
||||
|
||||
void start_tcp_task(void const * argument);
|
||||
void start_led_toggle_task(void const * argument);
|
||||
void start_dac_task(void const * argument);
|
||||
void start_adc_task(void const * argument);
|
||||
void start_gpio_di_do_task(void const * argument);
|
||||
void start_ec11_task(void const * argument);
|
||||
void start_tcp_task(void const *argument);
|
||||
void start_led_toggle_task(void const *argument);
|
||||
void start_dac_task(void const *argument);
|
||||
void start_adc_task(void const *argument);
|
||||
void start_gpio_di_do_task(void const *argument);
|
||||
void start_ec11_task(void const *argument);
|
||||
|
||||
extern void MX_LWIP_Init(void);
|
||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||
|
||||
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
|
||||
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize);
|
||||
|
||||
/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
|
||||
static StaticTask_t xIdleTaskTCBBuffer;
|
||||
|
@ -107,11 +107,12 @@ void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackTyp
|
|||
/* USER CODE END GET_IDLE_TASK_MEMORY */
|
||||
|
||||
/**
|
||||
* @brief FreeRTOS initialization
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void MX_FREERTOS_Init(void) {
|
||||
* @brief FreeRTOS initialization
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void MX_FREERTOS_Init(void)
|
||||
{
|
||||
/* USER CODE BEGIN Init */
|
||||
|
||||
/* USER CODE END Init */
|
||||
|
@ -160,7 +161,6 @@ void MX_FREERTOS_Init(void) {
|
|||
/* USER CODE BEGIN RTOS_THREADS */
|
||||
/* add threads, ... */
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN Header_start_tcp_task */
|
||||
|
@ -170,7 +170,7 @@ void MX_FREERTOS_Init(void) {
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_tcp_task */
|
||||
void start_tcp_task(void const * argument)
|
||||
void start_tcp_task(void const *argument)
|
||||
{
|
||||
/* init code for LWIP */
|
||||
MX_LWIP_Init();
|
||||
|
@ -216,7 +216,6 @@ void start_tcp_task(void const * argument)
|
|||
tcp_abort(server_pcb_control); // 热插拔下线时调用
|
||||
tcp_echo_flags_control = 0;
|
||||
}
|
||||
tcp_echo_flags_ble1 = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -244,7 +243,7 @@ void start_tcp_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_led_toggle_task */
|
||||
void start_led_toggle_task(void const * argument)
|
||||
void start_led_toggle_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_led_toggle_task */
|
||||
/* Infinite loop */
|
||||
|
@ -265,14 +264,14 @@ void start_led_toggle_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_dac_task */
|
||||
void start_dac_task(void const * argument)
|
||||
void start_dac_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_dac_task */
|
||||
dac161s997_init();
|
||||
/* Infinite loop */
|
||||
for (;;)
|
||||
{
|
||||
osThreadSuspend(adc_taskHandle); // æš‚å<EFBFBD>œADC任务,防æ¢DAC采集时产生干ï¿????????,å› ä¸ºADCå’ŒDAC采用的是å<C2AF>Œä¸€è·¯SPI,但是时åº<C3A5>ä¸<C3A4>ï¿????????
|
||||
osThreadSuspend(adc_taskHandle); // 暂停ADC任务,防止DAC采集时产生干<EFBFBD>????????,因为ADC和DAC采用的是同一路SPI,但是时序不<E5BA8F>????????
|
||||
dac161s997_output(DAC161S997_1, current_buff[0]);
|
||||
dac161s997_output(DAC161S997_2, current_buff[1]);
|
||||
osThreadResume(adc_taskHandle);
|
||||
|
@ -288,14 +287,14 @@ void start_dac_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_adc_task */
|
||||
void start_adc_task(void const * argument)
|
||||
void start_adc_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_adc_task */
|
||||
ad7124_setup();
|
||||
/* Infinite loop */
|
||||
for (;;)
|
||||
{
|
||||
osThreadSuspend(dac_taskHandle); // æš‚å<EFBFBD>œDAC任务,防æ¢ADC采集时产生干ï¿????????,å› ä¸ºADCå’ŒDAC采用的是å<C2AF>Œä¸€è·¯SPI,但是时åº<C3A5>ä¸<C3A4>ï¿????????
|
||||
osThreadSuspend(dac_taskHandle); // 暂停DAC任务,防止ADC采集时产生干<EFBFBD>????????,因为ADC和DAC采用的是同一路SPI,但是时序不<E5BA8F>????????
|
||||
uint8_t ch = 0;
|
||||
for (ch = STOP_NC_ADC; ch < AD7124_CHANNEL_EN_MAX; ch++)
|
||||
{
|
||||
|
@ -315,7 +314,7 @@ void start_adc_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_gpio_di_do_task */
|
||||
void start_gpio_di_do_task(void const * argument)
|
||||
void start_gpio_di_do_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_gpio_di_do_task */
|
||||
/* Infinite loop */
|
||||
|
@ -334,7 +333,7 @@ void start_gpio_di_do_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_ec11_task */
|
||||
void start_ec11_task(void const * argument)
|
||||
void start_ec11_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_ec11_task */
|
||||
/* Infinite loop */
|
||||
|
@ -342,7 +341,8 @@ void start_ec11_task(void const * argument)
|
|||
{
|
||||
linear_encoder_get_data();
|
||||
uart_lcd_ec11_control_current();
|
||||
vTaskDelay(100);
|
||||
uart_forwarding_tcp();
|
||||
vTaskDelay(10);
|
||||
}
|
||||
/* USER CODE END start_ec11_task */
|
||||
}
|
||||
|
|
|
@ -82,6 +82,10 @@ uint8_t tcp_echo_flags_ble2 = 0;
|
|||
uint8_t tcp_echo_flags_control = 0;
|
||||
uint8_t send_data_flag_cmd = 0;
|
||||
|
||||
uint8_t uart_echo_flags_hart1 = 0;
|
||||
uint8_t uart_echo_flags_hart2 = 0;
|
||||
uint8_t uart_echo_flags_ble1 = 0;
|
||||
uint8_t uart_echo_flags_ble2 = 0;
|
||||
// TEST
|
||||
// uint8_t data_flag = 0;
|
||||
// uint32_t receive_times1 = 0;
|
||||
|
@ -93,9 +97,9 @@ extern ip4_addr_t ipaddr;
|
|||
/* USER CODE END 0 */
|
||||
|
||||
/**
|
||||
* @brief The application entry point.
|
||||
* @retval int
|
||||
*/
|
||||
* @brief The application entry point.
|
||||
* @retval int
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
@ -171,22 +175,22 @@ int main(void)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief System Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
* @brief System Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
void SystemClock_Config(void)
|
||||
{
|
||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||
|
||||
/** Configure the main internal regulator output voltage
|
||||
*/
|
||||
*/
|
||||
__HAL_RCC_PWR_CLK_ENABLE();
|
||||
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
|
||||
|
||||
/** Initializes the RCC Oscillators according to the specified parameters
|
||||
* in the RCC_OscInitTypeDef structure.
|
||||
*/
|
||||
* in the RCC_OscInitTypeDef structure.
|
||||
*/
|
||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
|
||||
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
|
||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
|
||||
|
@ -201,9 +205,8 @@ void SystemClock_Config(void)
|
|||
}
|
||||
|
||||
/** Initializes the CPU, AHB and APB buses clocks
|
||||
*/
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
||||
*/
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
|
||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
|
||||
|
@ -272,7 +275,8 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(ble1_uart6.rx_data, ble1_uart6.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_ble1 == 1)
|
||||
{
|
||||
user_send_data_ble1(ble1_uart6.rx_data, Size);
|
||||
uart_echo_flags_ble1 = 1;
|
||||
// user_send_data_ble1(ble1_uart6.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
|
||||
}
|
||||
|
@ -285,7 +289,8 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(ble2_uart3.rx_data, ble2_uart3.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_ble2 == 1)
|
||||
{
|
||||
user_send_data_ble2(ble2_uart3.rx_data, Size);
|
||||
uart_echo_flags_ble2 = 1;
|
||||
// user_send_data_ble2(ble2_uart3.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp));
|
||||
}
|
||||
|
@ -297,7 +302,8 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(hart1_uart5.rx_data, hart1_uart5.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_hart1 == 1)
|
||||
{
|
||||
user_send_data_hart1(hart1_uart5.rx_data, Size);
|
||||
uart_echo_flags_hart1 = 1;
|
||||
// user_send_data_hart1(hart1_uart5.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
||||
memset(hart1_uart5.rx_data_temp, 0, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
||||
|
@ -310,7 +316,8 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(hart2_uart2.rx_data, hart2_uart2.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_hart2 == 1)
|
||||
{
|
||||
user_send_data_hart2(hart2_uart2.rx_data, Size);
|
||||
uart_echo_flags_hart2 = 1;
|
||||
// user_send_data_hart2(hart2_uart2.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
|
||||
}
|
||||
|
@ -356,19 +363,20 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|||
/* USER CODE END 4 */
|
||||
|
||||
/**
|
||||
* @brief Period elapsed callback in non blocking mode
|
||||
* @note This function is called when TIM4 interrupt took place, inside
|
||||
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
|
||||
* a global variable "uwTick" used as application time base.
|
||||
* @param htim : TIM handle
|
||||
* @retval None
|
||||
*/
|
||||
* @brief Period elapsed callback in non blocking mode
|
||||
* @note This function is called when TIM4 interrupt took place, inside
|
||||
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
|
||||
* a global variable "uwTick" used as application time base.
|
||||
* @param htim : TIM handle
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
||||
{
|
||||
/* USER CODE BEGIN Callback 0 */
|
||||
|
||||
/* USER CODE END Callback 0 */
|
||||
if (htim->Instance == TIM4) {
|
||||
if (htim->Instance == TIM4)
|
||||
{
|
||||
HAL_IncTick();
|
||||
}
|
||||
/* USER CODE BEGIN Callback 1 */
|
||||
|
@ -377,9 +385,9 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief This function is executed in case of error occurrence.
|
||||
* @retval None
|
||||
*/
|
||||
* @brief This function is executed in case of error occurrence.
|
||||
* @retval None
|
||||
*/
|
||||
void Error_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN Error_Handler_Debug */
|
||||
|
@ -391,14 +399,14 @@ void Error_Handler(void)
|
|||
/* USER CODE END Error_Handler_Debug */
|
||||
}
|
||||
|
||||
#ifdef USE_FULL_ASSERT
|
||||
#ifdef USE_FULL_ASSERT
|
||||
/**
|
||||
* @brief Reports the name of the source file and the source line number
|
||||
* where the assert_param error has occurred.
|
||||
* @param file: pointer to the source file name
|
||||
* @param line: assert_param error line source number
|
||||
* @retval None
|
||||
*/
|
||||
* @brief Reports the name of the source file and the source line number
|
||||
* where the assert_param error has occurred.
|
||||
* @param file: pointer to the source file name
|
||||
* @param line: assert_param error line source number
|
||||
* @retval None
|
||||
*/
|
||||
void assert_failed(uint8_t *file, uint32_t line)
|
||||
{
|
||||
/* USER CODE BEGIN 6 */
|
||||
|
|
|
@ -145,7 +145,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||
<Name>-U090F00028316303030303032 -O2254 -SF500 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
|
||||
<Name>-U420014000D0000504A51544E -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint>
|
||||
|
@ -154,7 +154,7 @@
|
|||
<Type>0</Type>
|
||||
<LineNumber>2413</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134234476</Address>
|
||||
<Address>134234468</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
|
@ -165,54 +165,6 @@
|
|||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\semi_finished_product_testing\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c\2413</Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>1</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>77</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134238496</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>../LWIP/App/lwip.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\semi_finished_product_testing\../LWIP/App/lwip.c\77</Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>2</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>224</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>startup_stm32f407xx.s</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>3</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>226</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>startup_stm32f407xx.s</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
|
@ -285,6 +237,11 @@
|
|||
<WinNumber>1</WinNumber>
|
||||
<ItemText>ip_address_flash,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>uart_echo_flags_hart1</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<TargetCommonOption>
|
||||
<Device>STM32F407VGTx</Device>
|
||||
<Vendor>STMicroelectronics</Vendor>
|
||||
<PackID>Keil.STM32F4xx_DFP.2.16.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||
<PackID>Keil.STM32F4xx_DFP.2.12.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack</PackURL>
|
||||
<Cpu>IRAM(0x20000000-0x2001BFFF) IRAM2(0x2001C000-0x2001FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4") TZ</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile></StartupFile>
|
||||
|
@ -186,7 +186,6 @@
|
|||
<RvdsVP>2</RvdsVP>
|
||||
<RvdsMve>0</RvdsMve>
|
||||
<RvdsCdeCp>0</RvdsCdeCp>
|
||||
<nBranchProt>0</nBranchProt>
|
||||
<hadIRAM2>1</hadIRAM2>
|
||||
<hadIROM2>0</hadIROM2>
|
||||
<StupSel>8</StupSel>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -15,4 +15,5 @@ extern void user_send_data_hart2(uint8_t *data, uint16_t len);
|
|||
extern void user_send_data_ble1(uint8_t *data, uint16_t len);
|
||||
extern void user_send_data_ble2(uint8_t *data, uint16_t len);
|
||||
extern void user_send_data_control(uint8_t *data, uint16_t len);
|
||||
extern void uart_forwarding_tcp(void);
|
||||
#endif
|
||||
|
|
|
@ -34,6 +34,11 @@ extern uint8_t tcp_echo_flags_ble2;
|
|||
extern uint8_t tcp_echo_flags_control;
|
||||
extern uint8_t send_data_flag_cmd;
|
||||
|
||||
extern uint8_t uart_echo_flags_hart1;
|
||||
extern uint8_t uart_echo_flags_hart2;
|
||||
extern uint8_t uart_echo_flags_ble1;
|
||||
extern uint8_t uart_echo_flags_ble2;
|
||||
|
||||
/*接收回调函数*/
|
||||
static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
|
||||
{ // 对应接收数据连接的控制块 接收到的数据
|
||||
|
@ -368,3 +373,29 @@ void user_send_data_control(uint8_t *data, uint16_t len)
|
|||
|
||||
tcp_write(server_pcb_control, data, len, 1);
|
||||
}
|
||||
|
||||
void uart_forwarding_tcp(void)
|
||||
{
|
||||
if (uart_echo_flags_hart1 == 1)
|
||||
{
|
||||
uart_echo_flags_hart1 = 0;
|
||||
user_send_data_hart1(hart1_uart5.rx_data, hart1_uart5.rx_num);
|
||||
}
|
||||
if (uart_echo_flags_hart2 == 1)
|
||||
{
|
||||
uart_echo_flags_hart2 = 0;
|
||||
user_send_data_hart2(hart2_uart2.rx_data, hart2_uart2.rx_num);
|
||||
}
|
||||
#if (BLE2_USART6 == 1)
|
||||
if (uart_echo_flags_ble1 == 1)
|
||||
{
|
||||
uart_echo_flags_ble1 = 0;
|
||||
user_send_data_ble1(ble1_uart6.rx_data, ble1_uart6.rx_num);
|
||||
}
|
||||
#endif
|
||||
if (uart_echo_flags_ble2 == 1)
|
||||
{
|
||||
uart_echo_flags_ble2 = 0;
|
||||
user_send_data_ble2(ble2_uart3.rx_data, ble2_uart3.rx_num);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue