修改驱动程序

This commit is contained in:
2584532475@qq.com committed 2023-05-19 18:02:00 +08:00
1 parent 063c3fcc07
commit a69c1a58d6
33 files changed
+1335 -349

No files matched your search

+12 -6
View File
@@ -27,7 +27,8 @@ void EthMqttTick(void)
// HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); // HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);
//} //}
static enum { static enum
{
DeviceReboot, DeviceReboot,
DeviceConfig, DeviceConfig,
DeviceGetPara, DeviceGetPara,
@@ -36,7 +37,8 @@ static enum {
DeviceLink, DeviceLink,
DeviceIdle, DeviceIdle,
} DeviceState = DeviceReboot ; } DeviceState = DeviceReboot ;
static enum { static enum
{
FistIn, FistIn,
Runing, Runing,
End, End,
@@ -184,7 +186,8 @@ void EthMqttTask(void)
s_run_timer = 5000; s_run_timer = 5000;
} }
} }
else if (s_run == End){ else if (s_run == End)
{
if (s_run_timer == 1) if (s_run_timer == 1)
{ {
//dbg_printf("Reboot Finsh\r\n"); //dbg_printf("Reboot Finsh\r\n");
@@ -192,7 +195,8 @@ void EthMqttTask(void)
s_run_timer = 0; s_run_timer = 0;
} }
} }
else{ else
{
s_run = FistIn ; s_run = FistIn ;
DeviceState = DeviceConfig; DeviceState = DeviceConfig;
} }
@@ -317,7 +321,8 @@ void EthMqttTask(void)
s_run_timer = 3000; s_run_timer = 3000;
} }
} }
else if (s_run == End){ else if (s_run == End)
{
if (s_run_timer == 1) if (s_run_timer == 1)
{ {
dbg_printf ("Reboot Finsh\r\n"); dbg_printf ("Reboot Finsh\r\n");
@@ -326,7 +331,8 @@ void EthMqttTask(void)
s_run_timer = 0; s_run_timer = 0;
} }
} }
else{ else
{
s_run = FistIn ; s_run = FistIn ;
DeviceState = DeviceIdle; DeviceState = DeviceIdle;
} }
+101
View File
@@ -0,0 +1,101 @@
#include "main.h"
#include "os-app.h"
#include <stdio.h>
#include <rtthread.h>
#include <string.h>
#include "usart-board.h"
#if !defined(LOG_TAG)
#define LOG_TAG "dtu"
#endif
#include <elog.h>
ALIGN (RT_ALIGN_SIZE)
static char thread_stack[2048];
static struct rt_thread dtu_thread;
static struct
{
uint32_t isConnected; // 连接成功
} g_dtuDrv ;
static enum
{
netDrvInit = 0, // 初始化网络驱动
netDrvJoin = 1, // 等待网络注册成功
netDrvSend = 2, // 发送数据
netDrvRecv = 3, // 读取数据
netDrvIdle = 4, // 读取数据
} eDrvStatus;
static void net_data_rxdone(void)
{
rt_event_send(gUartEvents,EVENT_UART_ETH1_RX);
//rt_kprintf("net_data_rxdone\r\n");
}
static void thread_entry (void * argument)
{
// eDrvStatus = netDrvInit;
rt_kprintf ("%s was start!\r\n", __FILE__);
// gnetEvents = rt_event_create("gnetEvents", RT_IPC_FLAG_FIFO) ;
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(ETH_PW_GPIO_Port, ETH_PW_Pin, GPIO_PIN_SET);
g_ETH1Drv.rxdone = net_data_rxdone;
MX_UART_Init(&g_ETH1Drv);
// // 注册网络驱动
// 注册网络驱动
while (1)
{
//MX_UART_PutBuffer(&g_ETH1Drv,"20140524",8);
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH1_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{
rt_kprintf("<<<<<<<<<<<<<<<<<<<<rx1:\r\n");
for(int i =0; i < g_ETH1Drv.rx_size;i++)
{
rt_kprintf("%02X ",g_ETH1Drv.rx_buffer[i]);
}
rt_kprintf("\r\n");
MX_UART_Clear(&g_ETH1Drv);
}
rt_thread_delay (100);
}
}
void DTUThreadStart (void)
{
/* 创建线程1,名称是thread1,入口是thread1_entry*/
rt_thread_init (&dtu_thread, "dtu_thread",
thread_entry, RT_NULL,
&thread_stack[0],
sizeof (thread_stack),
DTU_THREAD_PRIORITY, DTU_THREAD_TIMESLICE);
rt_thread_startup (&dtu_thread);
return ;
}
+9
View File
@@ -0,0 +1,9 @@
#ifndef _DTU_BOARD_H
#define _DTU_BOARD_H
typedef struct {
}
#endif
+101
View File
@@ -0,0 +1,101 @@
#include "main.h"
#include "os-app.h"
#include <stdio.h>
#include <rtthread.h>
#include <string.h>
#include "usart-board.h"
#if !defined(LOG_TAG)
#define LOG_TAG "dtu2"
#endif
#include <elog.h>
ALIGN (RT_ALIGN_SIZE)
static char thread_stack[2048];
static struct rt_thread dtu2_thread;
static enum
{
netDrvInit = 0, // 初始化网络驱动
netDrvJoin = 1, // 等待网络注册成功
netDrvSend = 2, // 发送数据
netDrvRecv = 3, // 读取数据
netDrvIdle = 4, // 读取数据
} eDrvStatus;
static void net_data_rxdone(void)
{
rt_event_send(gUartEvents,EVENT_UART_ETH2_RX);
//rt_kprintf("net_data_rxdone\r\n");
}
static void thread_entry (void * argument)
{
// eDrvStatus = netDrvInit;
rt_kprintf ("%s was start!\r\n", __FILE__);
g_ETH2Drv.rxdone = net_data_rxdone;
MX_UART_Init(&g_ETH2Drv);
// // 注册网络驱动
// 注册网络驱动
while (1)
{
//MX_UART_PutBuffer(&g_ETH1Drv,"20140524",8);
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH1_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{
rt_kprintf("<<<<<<<<<<<<<<<<<<<<rx1:\r\n");
for(int i =0; i < g_ETH1Drv.rx_size;i++)
{
rt_kprintf("%02X ",g_ETH1Drv.rx_buffer[i]);
}
rt_kprintf("\r\n");
MX_UART_Clear(&g_ETH1Drv);
}
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH2_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{
rt_kprintf("<<<<<<<<<<<<<<<<<<<<rx2:\r\n");
for(int i =0; i < g_ETH2Drv.rx_size;i++)
{
rt_kprintf("%02X ",g_ETH2Drv.rx_buffer[i]);
}
rt_kprintf("\r\n");
MX_UART_Clear(&g_ETH2Drv);
}
rt_thread_delay (100);
}
}
void DTU2ThreadStart (void)
{
/* 创建线程1,名称是thread1,入口是thread1_entry*/
rt_thread_init (&dtu2_thread, "dtu2_thread",
thread_entry, RT_NULL,
&thread_stack[0],
sizeof (thread_stack),
DTU2_THREAD_PRIORITY, DTU2_THREAD_TIMESLICE);
rt_thread_startup (&dtu2_thread);
return ;
}
+9
View File
@@ -0,0 +1,9 @@
#ifndef _DTU_BOARD_H
#define _DTU_BOARD_H
typedef struct {
}
#endif
+2 -1
View File
@@ -2,7 +2,8 @@
RelayInfo_t RelayInfo = { RelayInfo_t RelayInfo =
{
{GPIOB, GPIO_PIN_8, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_VERY_HIGH, NULL}, //PB5 {GPIOB, GPIO_PIN_8, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_VERY_HIGH, NULL}, //PB5
{GPIOB, GPIO_PIN_9, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_VERY_HIGH, NULL}, //PB5 {GPIOB, GPIO_PIN_9, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_VERY_HIGH, NULL}, //PB5
}; };
+480 -39
View File
@@ -1,14 +1,148 @@
#include "usart-board.h" #include "usart-board.h"
#include "usart.h"
#define UART_LPUART1_BUFF_SIZE 256 // 4853
#define UART_LPUART2_BUFF_SIZE 2400 // gsm
#define UART_UART1_BUFF_SIZE 256 // 4852
#define UART_UART2_BUFF_SIZE 2048 // debbug
#define UART_UART3_BUFF_SIZE 256 // 4852
#define UART_UART4_BUFF_SIZE 2400 // eth1
#define UART_UART5_BUFF_SIZE 256 // 4851
#define UART_UART6_BUFF_SIZE 256 // view
static char s_lpuart1_buff[UART_LPUART1_BUFF_SIZE];
static char s_lpuart2_buff[UART_LPUART2_BUFF_SIZE];
static char s_uart1_buff[UART_UART1_BUFF_SIZE];
static char s_uart2_buff[UART_UART2_BUFF_SIZE];
static char s_uart3_buff[UART_UART3_BUFF_SIZE];
static char s_uart4_buff[UART_UART4_BUFF_SIZE];
static char s_uart5_buff[UART_UART5_BUFF_SIZE];
static char s_uart6_buff[UART_UART6_BUFF_SIZE];
extern UART_HandleTypeDef hlpuart1;
extern UART_HandleTypeDef hlpuart2;
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;
extern UART_HandleTypeDef huart4;
extern UART_HandleTypeDef huart5;
extern UART_HandleTypeDef huart6;
UartDrv_t g_DebugDrv = { G0_UART2, 115200, PARITY_DATA_8N1, s_uart2_buff, 0, NULL, 0 }; // 调试串口驱动
UartDrv_t g_U4851Drv = { G0_UART5, 115200, PARITY_DATA_8N1, s_uart5_buff, 0, NULL, 0 }; // 4851 驱动
UartDrv_t g_U4852Drv = { G0_UART3, 115200, PARITY_DATA_8N1, s_uart3_buff, 0, NULL, 0 }; // 4852 驱动
UartDrv_t g_U4853Drv = { G0_UART1, 115200, PARITY_DATA_8N1, s_uart1_buff, 0, NULL, 0 }; // 4853 驱动
UartDrv_t g_ViewDrv = { G0_UART6, 115200, PARITY_DATA_8N1, s_uart6_buff, 0, NULL, 0 }; // view 驱动
UartDrv_t g_ETH1Drv = { G0_UART4, 115200, PARITY_DATA_8N1, s_uart4_buff, 0, NULL, 0 }; // 以太网通道1 驱动
UartDrv_t g_ETH2Drv = { G0_LPUART1, 115200, PARITY_DATA_8N1, s_lpuart1_buff, 0, NULL, 0 }; // 以太网通道2 驱动
UartDrv_t g_GSMDrv = { G0_LPUART2, 115200, PARITY_DATA_8N1, s_lpuart2_buff, 0, NULL, 0 }; // 4G模块 驱动
UartDrv_t g_LoRaDrv = { G0_UART3, 115200, PARITY_DATA_8N1, s_uart3_buff, 0, NULL, 0 }; // LoRa 模块驱动
void MX_UART_TickHandle (void)
{
// 调试串口
if (g_DebugDrv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_DebugDrv.rxdone != NULL)
{
g_DebugDrv.rxdone();// 接受回调函数处理
}
}
if (g_DebugDrv.rx_timer > 1)
g_DebugDrv.rx_timer--;
// 4851
if (g_U4851Drv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_U4851Drv.rxdone != NULL)
{
g_U4851Drv.rxdone();// 接受回调函数处理
}
}
if (g_U4851Drv.rx_timer > 1)
g_U4851Drv.rx_timer--;
// 4852
if (g_U4852Drv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_U4852Drv.rxdone != NULL)
{
g_U4852Drv.rxdone();// 接受回调函数处理
}
}
if (g_U4852Drv.rx_timer > 1)
g_U4852Drv.rx_timer--;
// 4853
if (g_U4853Drv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_U4853Drv.rxdone != NULL)
{
g_U4853Drv.rxdone();// 接受回调函数处理
}
}
if (g_U4853Drv.rx_timer > 1)
g_U4853Drv.rx_timer--;
// GSM
if (g_GSMDrv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_GSMDrv.rxdone != NULL)
{
g_GSMDrv.rxdone();// 接受回调函数处理
}
}
if (g_GSMDrv.rx_timer > 1)
g_GSMDrv.rx_timer--;
// ETH1
if (g_ETH1Drv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_ETH1Drv.rxdone != NULL)
{
g_ETH1Drv.rxdone();// 接受回调函数处理
}
}
if (g_ETH1Drv.rx_timer > 1)
g_ETH1Drv.rx_timer--;
// ETH2
if (g_ETH2Drv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_ETH2Drv.rxdone != NULL)
{
g_ETH2Drv.rxdone();// 接受回调函数处理
}
}
if (g_ETH2Drv.rx_timer > 1)
g_ETH2Drv.rx_timer--;
//VIEW
if (g_ViewDrv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_ViewDrv.rxdone != NULL)
{
g_ViewDrv.rxdone();// 接受回调函数处理
}
}
if (g_ViewDrv.rx_timer > 1)
g_ViewDrv.rx_timer--;
// LORA
if (g_LoRaDrv.rx_timer == 2) // 通过事件通知到业务app
{
if (g_LoRaDrv.rxdone != NULL)
{
g_LoRaDrv.rxdone();// 接受回调函数处理
}
}
if (g_LoRaDrv.rx_timer > 1)
g_LoRaDrv.rx_timer--;
}
UartDrv_t g_DebugDrv; // 调试串口驱动
UartDrv_t g_U4851Drv; // 4851 驱动
UartDrv_t g_U4852Drv; // 4852 驱动
UartDrv_t g_U4853Drv; // 4853 驱动
UartDrv_t g_ViewDrv; // View 驱动
UartDrv_t g_ETH1Drv; // 以太网通道1 驱动
UartDrv_t g_ETH2Drv; // 以太网通道1 驱动
UartDrv_t g_GSMDrv; // 以太网通道1 驱动
UartDrv_t g_LoRaDrv; // LoRa 模块驱动
/******************************************** /********************************************
函数名称:UartInfoInit 函数名称:UartInfoInit
输入参数:串口句柄 输入参数:串口句柄
@@ -17,46 +151,353 @@ UartDrv_t g_LoRaDrv; // LoRa ģ
********************************************/ ********************************************/
void UartInfoInit() void MX_UART_Init (UartDrv_t *drv)
{ {
uint32_t Parity = NULL, WordLength = NULL;
// 检验位
if (drv->DataParity && PARITY_EVEN_MASK != 0)
{
Parity = UART_PARITY_EVEN;
} }
void RelayInfoInit(void) else if (drv->DataParity && PARITY_ODD_MASK != 0)
{ {
GPIO_InitTypeDef GPIO_InitStruct; Parity = UART_PARITY_ODD;
GPIO_InitStruct.Mode = RelayInfo.Relay1.mode;
GPIO_InitStruct.Pull = RelayInfo.Relay1.Pull;
GPIO_InitStruct.Speed = RelayInfo.Relay1.Speed;
GPIO_InitStruct.Pin = RelayInfo.Relay1.pin;
HAL_GPIO_Init (RelayInfo.Relay1.GPIOx, &GPIO_InitStruct);
HAL_GPIO_WritePin(RelayInfo.Relay1.GPIOx,RelayInfo.Relay1.pin,GPIO_PIN_RESET);
GPIO_InitStruct.Mode = RelayInfo.Relay2.mode;
GPIO_InitStruct.Pull = RelayInfo.Relay2.Pull;
GPIO_InitStruct.Speed = RelayInfo.Relay2.Speed;
GPIO_InitStruct.Pin = RelayInfo.Relay2.pin;
HAL_GPIO_Init (RelayInfo.Relay2.GPIOx, &GPIO_InitStruct);
HAL_GPIO_WritePin(RelayInfo.Relay2.GPIOx,RelayInfo.Relay2.pin,GPIO_PIN_RESET);
} }
void RelayOpenDoor(void) else
{ {
HAL_GPIO_WritePin(RelayInfo.Relay1.GPIOx,RelayInfo.Relay1.pin,GPIO_PIN_SET); Parity = UART_PARITY_NONE;
} }
void RelayCloseDoor(void) // 数据位
if (drv->DataParity && DATA8_MASK != 0)
{ {
HAL_GPIO_WritePin(RelayInfo.Relay1.GPIOx,RelayInfo.Relay1.pin,GPIO_PIN_RESET); WordLength = UART_WORDLENGTH_7B;
}
else
{
WordLength = UART_WORDLENGTH_8B;
}
switch (drv->Id)
{
case G0_LPUART1: // ETH2
{
hlpuart1.Instance = LPUART1;
hlpuart1.Init.BaudRate = drv->BaudRate;
hlpuart1.Init.WordLength = WordLength;
hlpuart1.Init.Parity = Parity;
hlpuart1.Init.StopBits = UART_STOPBITS_1;
hlpuart1.Init.Mode = UART_MODE_TX_RX;
hlpuart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
hlpuart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
hlpuart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
hlpuart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
hlpuart1.FifoMode = UART_FIFOMODE_DISABLE;
if (HAL_UART_Init (&hlpuart1) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold (&hlpuart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold (&hlpuart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode (&hlpuart1) != HAL_OK)
{
Error_Handler();
}
__HAL_UART_ENABLE_IT (&hlpuart1, UART_IT_RXNE);
break;
}
case G0_LPUART2 : // GSM
hlpuart2.Instance = LPUART2;
hlpuart2.Init.BaudRate = drv->BaudRate;
hlpuart2.Init.WordLength = WordLength;
hlpuart2.Init.Parity = Parity;
hlpuart2.Init.StopBits = UART_STOPBITS_1;
hlpuart2.Init.Mode = UART_MODE_TX_RX;
hlpuart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
hlpuart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
hlpuart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
hlpuart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
hlpuart2.FifoMode = UART_FIFOMODE_DISABLE;
if (HAL_UART_Init (&hlpuart2) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold (&hlpuart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold (&hlpuart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode (&hlpuart2) != HAL_OK)
{
Error_Handler();
}
break;
case G0_UART1 : // 4853
huart1.Instance = USART1;
huart1.Init.BaudRate = drv->BaudRate;
huart1.Init.WordLength = WordLength;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = Parity;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init (&huart1) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold (&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold (&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode (&huart1) != HAL_OK)
{
Error_Handler();
}
break;
case G0_UART2: // debug
huart2.Instance = USART2;
huart2.Init.BaudRate = drv->BaudRate;
huart2.Init.WordLength = WordLength;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = Parity;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
// 初始化串口
if (HAL_UART_Init (&huart2) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold (&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold (&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode (&huart2) != HAL_OK)
{
Error_Handler();
}
// 使能串口接受中断,用于接受数据
__HAL_UART_ENABLE_IT (&huart2, UART_IT_RXNE);
break;
case G0_UART3: // 4852
huart3.Instance = USART3;
huart3.Init.BaudRate = drv->BaudRate;
huart3.Init.WordLength = WordLength;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = Parity;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init (&huart3) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold (&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold (&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode (&huart3) != HAL_OK)
{
Error_Handler();
}
break;
case G0_UART4: // ETH1
huart4.Instance = USART4;
huart4.Init.BaudRate = drv->BaudRate;
huart4.Init.WordLength = WordLength;
huart4.Init.StopBits = UART_STOPBITS_1;
huart4.Init.Parity = Parity;
huart4.Init.Mode = UART_MODE_TX_RX;
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init (&huart4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART4_Init 2 */
__HAL_UART_ENABLE_IT (&huart4, UART_IT_RXNE);
break;
case G0_UART5: // 4851
huart5.Instance = USART5;
huart5.Init.BaudRate = drv->BaudRate;
huart5.Init.WordLength = WordLength;
huart5.Init.StopBits = UART_STOPBITS_1;
huart5.Init.Parity = Parity;
huart5.Init.Mode = UART_MODE_TX_RX;
huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart5.Init.OverSampling = UART_OVERSAMPLING_16;
huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart5.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init (&huart5) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART5_Init 2 */
__HAL_UART_ENABLE_IT (&huart5, UART_IT_RXNE);
break;
case G0_UART6: // View
huart6.Instance = USART6;
huart6.Init.BaudRate = drv->BaudRate;
huart6.Init.WordLength = WordLength;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = Parity;
huart6.Init.Mode = UART_MODE_TX_RX;
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart6.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init (&huart6) != HAL_OK)
{
Error_Handler();
}
break;
default:
break;
}
} }
void RelayOpenK2(void)
void MX_UART_IRQHandle (void)
{ {
HAL_GPIO_WritePin(RelayInfo.Relay2.GPIOx,RelayInfo.Relay2.pin,GPIO_PIN_SET); uint8_t ret;
} if (USART2->ISR & (1 << 5)) // 串口2
void RelayCloseK2(void)
{ {
HAL_GPIO_WritePin(RelayInfo.Relay2.GPIOx,RelayInfo.Relay2.pin,GPIO_PIN_RESET); ret = USART2->RDR;
if( g_DebugDrv.rx_buffer != NULL)
{
g_DebugDrv.rx_buffer[g_DebugDrv.rx_size++] = ret;
g_DebugDrv.rx_timer = 30; // 30ms
if (g_DebugDrv.rx_size > UART_UART2_BUFF_SIZE)
g_DebugDrv.rx_size = 0;
} }
}
if (USART4->ISR & (1 << 5))
{
ret = USART4->RDR;
if( g_ETH1Drv.rx_buffer != NULL)
{
g_ETH1Drv.rx_buffer[g_ETH1Drv.rx_size++] = ret;
g_ETH1Drv.rx_timer = 30; // 30ms
if (g_ETH1Drv.rx_size > UART_UART4_BUFF_SIZE)
g_ETH1Drv.rx_size = 0;
}
}
if (USART5->ISR & (1 << 5))
{
ret = USART5->RDR;
if( g_U4851Drv.rx_buffer != NULL)
{
g_U4851Drv.rx_buffer[g_U4851Drv.rx_size++] = ret;
g_U4851Drv.rx_timer = 30; // 30ms
if (g_U4851Drv.rx_size > UART_UART5_BUFF_SIZE)
g_U4851Drv.rx_size = 0;
}
}
if (LPUART1->ISR & (1 << 5))
{
ret = LPUART1->RDR;
if( g_ETH2Drv.rx_buffer != NULL)
{
g_ETH2Drv.rx_buffer[g_ETH2Drv.rx_size++] = ret;
g_ETH2Drv.rx_timer = 30; // 30ms
if (g_ETH2Drv.rx_size > UART_LPUART1_BUFF_SIZE)
g_ETH2Drv.rx_size = 0;
}
}
}
void MX_UART_Clear (UartDrv_t * drv)
{
drv->rx_size = 0;
drv->rx_timer = 0;
}
void MX_UART_PutChar (UartDrv_t * drv, char ch)
{
switch (drv->Id)
{
case G0_LPUART1:
HAL_UART_Transmit (&hlpuart1, (uint8_t *) &ch, 1, 1000);
break;
case G0_LPUART2:
HAL_UART_Transmit (&hlpuart2, (uint8_t *) &ch, 1, 1000);
break;
case G0_UART1:
HAL_UART_Transmit (&huart1, (uint8_t *) &ch, 1, 1000);
break;
case G0_UART2:
HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 1000);
break;
case G0_UART3:
HAL_UART_Transmit (&huart3, (uint8_t *) &ch, 1, 1000);
break;
case G0_UART4:
HAL_UART_Transmit (&huart4, (uint8_t *) &ch, 1, 1000);
break;
case G0_UART5:
HAL_UART_Transmit (&huart5, (uint8_t *) &ch, 1, 1000);
break;
case G0_UART6:
HAL_UART_Transmit (&huart6, (uint8_t *) &ch, 1, 1000);
break;
default:
break;
}
}
void MX_UART_PutBuffer (UartDrv_t * drv, char *buff, int size)
{
for (int i = 0; i < size; i++)
{
MX_UART_PutChar (drv, buff[i]);
}
}
#include <stdarg.h>
#include <stdio.h>
// 重定义fputc函数
int fputc (int ch, FILE *f)
{
HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 2000);
return ch;
}
+49 -19
View File
@@ -2,41 +2,71 @@
#define _UART_BOARD_H #define _UART_BOARD_H
#include <stdint.h> #include <stdint.h>
typedef enum UartId_t typedef enum UartId_t
{ {
LpUart1, G0_LPUART1,
LpUart2, G0_LPUART2,
Uart1, G0_UART1,
Uart2, G0_UART2,
Uart3, G0_UART3,
Uart4, G0_UART4,
Uart5, G0_UART5,
Uart6, G0_UART6,
G0_UARTM
} UartId_t; } UartId_t;
typedef enum UartPara_t{ #define PARITY_EVEN_MASK 0X02
_8N1, #define PARITY_ODD_MASK 0x04
_8E1, #define PARITY_NONE_MASK 0x00
_8O1, #define DATA8_MASK 0X00
_7O1, #define DATA7_MASK 0X01
_7E1,
_7N1,
}UartPara_t; #define PARITY_DATA_8N1 (DATA8_MASK | PARITY_NONE_MASK) // 00H
#define PARITY_DATA_7N1 (DATA7_MASK | PARITY_NONE_MASK) // 01H
#define PARITY_DATA_8E1 (DATA8_MASK | PARITY_EVEN_MASK) // 02H
#define PARITY_DATA_7E1 (DATA7_MASK | PARITY_EVEN_MASK) // 03H
#define PARITY_DATA_8O1 (DATA8_MASK | PARITY_ODD_MASK) // 04H
#define PARITY_DATA_7O1 (DATA7_MASK | PARITY_ODD_MASK) // 05H
typedef struct UartDrv_t typedef struct UartDrv_t
{ {
UartId_t Id;// 串口号 UartId_t Id;// 串口号
uint32_t BaudRate;// 波特率 uint32_t BaudRate;// 波特率
UartPara_t Para; // 数据位 uint32_t DataParity; // 数据位
char * rx_buffer; char * rx_buffer;
uint16_t rx_size; uint16_t rx_size;
uint32_t rx_ready;// 接受完成等待处理 void (*rxdone) (void); // 接受完成回调函数
uint32_t rx_timer;
} UartDrv_t; } UartDrv_t;
extern UartDrv_t g_DebugDrv ;
extern UartDrv_t g_U4851Drv ;
extern UartDrv_t g_U4852Drv ;
extern UartDrv_t g_U4853Drv ;
extern UartDrv_t g_ViewDrv ;
extern UartDrv_t g_ETH1Drv ;
extern UartDrv_t g_ETH2Drv ;
extern UartDrv_t g_GSMDrv ;
extern UartDrv_t g_LoRaDrv ;
// function
extern void MX_UART_TickHandle (void);
extern void MX_UART_Init (UartDrv_t *drv);
extern void MX_UART_IRQHandle (void);
extern void MX_UART_Clear (UartDrv_t * drv);
extern void MX_UART_PutChar (UartDrv_t * drv, char ch);
extern void MX_UART_PutBuffer (UartDrv_t * drv, char *buff, int size);
#endif #endif
+31
View File
@@ -0,0 +1,31 @@
#ifndef MODBUS_ADDR_H
#define MODBUS_ADDR_H
#include <stdint.h>
#define REG_GOPENH 0X0000
#define REG_GOPENL 0X0001
#define REG_ALOADH 0X0002
#define REG_ALOADL 0X0003
#define REG_BLOADH 0X0004
#define REG_BLOADL 0X0005
#define REG_SOPEN 0X0007
#define REG_SLOPT 0X0008 // 执行闸门动作
#define REG_MAX 0X0009
#endif
-4
View File
@@ -2,9 +2,6 @@
#define _NET_APP_H #define _NET_APP_H
// 远程升级宏
#define ETH_MQTT 1
#define EC200_MQTT 0
@@ -17,7 +14,6 @@ typedef struct netWorkInterface_t
int (*IsReady) (void); int (*IsReady) (void);
int (*IsIdle) (void); int (*IsIdle) (void);
int (*ReSubTopic) (char *); int (*ReSubTopic) (char *);
void (*Task) (void);
} netWorkInterface_t; } netWorkInterface_t;
+65 -16
View File
@@ -6,12 +6,42 @@
#include <stdio.h> #include <stdio.h>
#include <rtthread.h> #include <rtthread.h>
#include <net-app.h> #include <net-app.h>
#include <easyflash.h>
#include <string.h>
#include "usart-board.h"
ALIGN(RT_ALIGN_SIZE) ALIGN(RT_ALIGN_SIZE)
static char thread_stack[4096]; static char thread_stack[4096];
static struct rt_thread netapp_thread; static struct rt_thread netapp_thread;
static rt_event_t gnetEvents;
#define EVENT_COMM_TX (1U << 0)
#define EVENT_COMM_RX (1U << 1) //
// case ssKHYSet:
// {
// vv = value*10;
// dbg_printf ("MbusSetValue vv:%d\r\n",vv);
// sendcmd[type][4] = ((vv >> 8) & 0xff);
// sendcmd[type][5] = (vv & 0xff);
// vv = bsp_crc_calc16((uint8_t *)sendcmd[type],6);
// sendcmd[type][7] = ((vv >> 8) & 0xff);
// sendcmd[type][6] = (vv & 0xff);
// for(int i = 0;i < 8;i++)
// {
// dbg_printf("%02X ",sendcmd[type][i]);
// }
// dbg_printf("\r\n");
// }
// {0x01, 0x03, 0x00, 0x00, 0x00, 0x06, 0xC5, 0xC8}, // 闸位计读取开度
// {0x01, 0x06, 0x00, 0x07, 0x00, 0x02, 0xE6, 0x69}, // 闸位计设置开度
// {0x01, 0x06, 0x00, 0x04, 0x01, 0x00, 0xC9, 0x9B}, // 启动闸位计
// {0x01, 0x06, 0x00, 0x04, 0x00, 0x00, 0xC8, 0x0B}, // 停止闸位计
static enum { static enum {
netDrvInit = 0, // 初始化网络驱动 netDrvInit = 0, // 初始化网络驱动
@@ -22,36 +52,54 @@ static enum {
}eDrvStatus; }eDrvStatus;
static netWorkInterface_t interface; static netWorkInterface_t interface;
static void net_send_frame(void)
{
rt_event_send(gnetEvents,EVENT_COMM_TX) ;
}
// 网络链接成功
static void net_connected(void)
{
}
static void thread_entry(void * argument) static void thread_entry(void * argument)
{ {
eDrvStatus = netDrvInit; eDrvStatus = netDrvInit;
rt_kprintf("%s was start!\r\n",__FILE__); rt_kprintf("%s was start!\r\n",__FILE__);
gnetEvents = rt_event_create("gnetEvents", RT_IPC_FLAG_FIFO) ;
// 读取网络驱动类型
char * drv = ef_get_env ("net_drv"); // 读取网络类型
if(strcmp("dtu",drv) == 0) // 驱动程序位DTU模式,就是不通过本地配置,直接透传
{
DTUThreadStart();
// 初始化串口驱动
// interface.Init = NULL;
// interface.IsConnected = NULL;
// interface.IsIdle = NULL;
// interface.IsReady = NULL;
// interface.ReadData = NULL;
// interface.ReSubTopic = NULL;
// interface.WriteData = NULL;
}
// 注册网络驱动 // 注册网络驱动
// 注册网络驱动 // 注册网络驱动
while (1) while (1)
{ {
switch (eDrvStatus) // 发送数据
if( RT_EOK == rt_event_recv( gnetEvents, EVENT_COMM_TX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{ {
case netDrvInit:
break; }
case netDrvJoin: if ( RT_EOK == rt_event_recv( gnetEvents, EVENT_COMM_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
break; {
case netDrvSend:
break;
case netDrvRecv:
break;
case netDrvIdle:
break;
default :
break;
} }
rt_thread_delay(10); rt_thread_delay(10);
} }
} }
void NET_APPThreadStart(void ) void NET_APPThreadStart(void )
{ {
/* 创建线程1,名称是thread1,入口是thread1_entry*/ /* 创建线程1,名称是thread1,入口是thread1_entry*/
@@ -60,7 +108,6 @@ void NET_APPThreadStart(void )
&thread_stack[0], &thread_stack[0],
sizeof(thread_stack), sizeof(thread_stack),
NET_APP_THREAD_PRIORITY, NET_APP_THREAD_TIMESLICE); NET_APP_THREAD_PRIORITY, NET_APP_THREAD_TIMESLICE);
rt_thread_startup(&netapp_thread); rt_thread_startup(&netapp_thread);
return ; return ;
@@ -75,3 +122,5 @@ void NET_APPThreadStart(void )
+172
View File
@@ -0,0 +1,172 @@
#include "main.h"
#include "os-app.h"
#include <stdio.h>
#include <rtthread.h>
#include <net-app.h>
#include <easyflash.h>
#include <string.h>
#include "usart-board.h"
#include "modbus-s.h"
#include "modbusaddr.h"
ALIGN(RT_ALIGN_SIZE)
static char thread_stack[4096];
static struct rt_thread probus_thread;
uint16_t REG_DATA[REG_MAX] = {0x00};
// 寄存器对应的数据
// case ssKHYSet:
// {
// vv = value*10;
// dbg_printf ("MbusSetValue vv:%d\r\n",vv);
// sendcmd[type][4] = ((vv >> 8) & 0xff);
// sendcmd[type][5] = (vv & 0xff);
// vv = bsp_crc_calc16((uint8_t *)sendcmd[type],6);
// sendcmd[type][7] = ((vv >> 8) & 0xff);
// sendcmd[type][6] = (vv & 0xff);
// for(int i = 0;i < 8;i++)
// {
// dbg_printf("%02X ",sendcmd[type][i]);
// }
// dbg_printf("\r\n");
// }
// {0x01, 0x03, 0x00, 0x00, 0x00, 0x06, 0xC5, 0xC8}, // 闸位计读取开度
// {0x01, 0x06, 0x00, 0x07, 0x00, 0x02, 0xE6, 0x69}, // 闸位计设置开度
// {0x01, 0x06, 0x00, 0x04, 0x01, 0x00, 0xC9, 0x9B}, // 启动闸位计
// {0x01, 0x06, 0x00, 0x04, 0x00, 0x00, 0xC8, 0x0B}, // 停止闸位计
static ModBusSlave_t modbus_slave;
static uint8_t modbus_rx_data[32];
static void eth2_data_rxdone(void)
{
rt_event_send(gUartEvents,EVENT_UART_ETH2_RX);
//rt_kprintf("net_data_rxdone\r\n");
}
static void probus_handle(uint16_t addr,uint8_t * data)
{
switch (addr)
{
case REG_SOPEN: // 设定闸门开度
break;
case REG_SLOPT: // 执行闸门动作
if (data[0] == 0x01) // 执行
{
rt_event_send(gCtrlEvents,EVENT_CTRL_SET_OPEN);
rt_kprintf("probus_handle set open\r\n");
}
else
{
}
break;
default:
break;
}
}
static void thread_entry(void * argument)
{
int k = 0;
uint8_t txbuff[128] = {0};
int tx_size = 0;
rt_kprintf("%s was start!\r\n",__FILE__);
g_ETH2Drv.rxdone = eth2_data_rxdone;
g_ETH2Drv.BaudRate = 115200;
MX_UART_Init(&g_ETH2Drv);
ModbusSlaveInit(&modbus_slave,0x01,modbus_rx_data,REG_DATA,REG_MAX);
// 注册网络驱动
// 注册网络驱动
while (1)
{
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH2_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{
// rt_kprintf("<<<<<<<<<<<<<<<<<<<<probus2:\r\n");
// for(int i =0; i < g_ETH2Drv.rx_size;i++)
// {
// rt_kprintf("%02X ",g_ETH2Drv.rx_buffer[i]);
// }
// rt_kprintf("\r\n");
k = ModbusSlaveHandle(&modbus_slave,(uint8_t *)g_ETH2Drv.rx_buffer,g_ETH2Drv.rx_size);
//rt_kprintf("k:%d\r\n",k);
if( k == 0)
{
switch (modbus_slave.func)
{
case 0x03:
tx_size = ModbusSlavePacket(&modbus_slave,txbuff);
// 直接返回当前寄存器中的数据
break;
case 0x06:
//处理对应的事件
probus_handle(modbus_slave.Addr,modbus_slave.data);
// 数据打包回复
tx_size = ModbusSlavePacket(&modbus_slave,txbuff);
break;
default:
tx_size = 0;
break;
}
}
else
{
tx_size = 0;
}
if (tx_size > 0)
{
MX_UART_PutBuffer(&g_ETH2Drv,(char *)txbuff,tx_size);
}
MX_UART_Clear(&g_ETH2Drv);
}
rt_thread_delay(10);
}
}
void PROBUS_APPThreadStart(void )
{
/* 创建线程1,名称是thread1,入口是thread1_entry*/
rt_thread_init(&probus_thread, "probus_thread",
thread_entry, RT_NULL,
&thread_stack[0],
sizeof(thread_stack),
PROBUS_APP_THREAD_PRIORITY, PROBUS_APP_THREAD_TIMESLICE);
rt_thread_startup(&probus_thread);
return ;
}
+2 -2
View File
@@ -89,8 +89,8 @@ void Error_Handler(void);
#define DBG_TX_GPIO_Port GPIOA #define DBG_TX_GPIO_Port GPIOA
#define DBG_RX_Pin GPIO_PIN_3 #define DBG_RX_Pin GPIO_PIN_3
#define DBG_RX_GPIO_Port GPIOA #define DBG_RX_GPIO_Port GPIOA
#define DAC1_Pin GPIO_PIN_4 #define ETH_PW_Pin GPIO_PIN_4
#define DAC1_GPIO_Port GPIOA #define ETH_PW_GPIO_Port GPIOA
#define DAC2_Pin GPIO_PIN_5 #define DAC2_Pin GPIO_PIN_5
#define DAC2_GPIO_Port GPIOA #define DAC2_GPIO_Port GPIOA
#define ADCPW_Pin GPIO_PIN_7 #define ADCPW_Pin GPIO_PIN_7
+7 -31
View File
@@ -41,33 +41,9 @@ extern "C" {
#define UART_TXE_IRQ 7 #define UART_TXE_IRQ 7
#define LPUART_MAX_LENGTH 1200
#define USART1_MAX_LENGTH 1200
#define USART2_MAX_LENGTH 1200
#define USART4_MAX_LENGTH 1200 //
#define USART5_MAX_LENGTH 255
typedef enum Uart_t{
LpUart1 = 0,
LpUart2 = 1,
Uart1 = 2,
Uart2 = 3,
Uart3 = 4,
Uart4 = 5,
Uart5 = 6,
Uart6 = 7,
UartMax = 8,
}Uart_t;
typedef struct UartBuff_t{
char * rxBuf;
uint16_t rxMaxLen;
uint16_t rxLen;
char * txBuf;
uint16_t txMaxLen;
uint16_t txLen;
}UartBuff_t;
/* USER CODE END Includes */ /* USER CODE END Includes */
@@ -102,13 +78,13 @@ void MX_USART5_UART_Init(void);
void MX_USART6_UART_Init(void); void MX_USART6_UART_Init(void);
/* USER CODE BEGIN Prototypes */ /* USER CODE BEGIN Prototypes */
int dbg_printf (char* fmt, ...);
extern void uart_SystemTick (void);
extern int MX_UART_IsReady(Uart_t uart); //extern int MX_UART_IsReady(Uart_t uart);
extern int MX_UART_ReadData(Uart_t uart, char * buff, int maxLength); //extern int MX_UART_ReadData(Uart_t uart, char * buff, int maxLength);
void MX_UART_Clear(Uart_t uart); //void MX_UART_Clear(Uart_t uart);
void MX_UART_PutChar(Uart_t uart, char ch); //void MX_UART_PutChar(Uart_t uart, char ch);
void MX_UART_PutBuffer(Uart_t uart, char *buff,int size); //void MX_UART_PutBuffer(Uart_t uart, char *buff,int size);
/* USER CODE END Prototypes */ /* USER CODE END Prototypes */
#ifdef __cplusplus #ifdef __cplusplus
+1 -1
View File
@@ -39,7 +39,7 @@ void MX_CRC_Init(void)
hcrc.Instance = CRC; hcrc.Instance = CRC;
hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE; hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE;
hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_DISABLE; hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_DISABLE;
hcrc.Init.GeneratingPolynomial = 7; hcrc.Init.GeneratingPolynomial = 0x8005;
hcrc.Init.CRCLength = CRC_POLYLENGTH_16B; hcrc.Init.CRCLength = CRC_POLYLENGTH_16B;
hcrc.Init.InitValue = 0xFFFF; hcrc.Init.InitValue = 0xFFFF;
hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_BYTE; hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_BYTE;
+13 -13
View File
@@ -38,7 +38,6 @@
* Output * Output
* EVENT_OUT * EVENT_OUT
* EXTI * EXTI
PA4 ------> COMP_DAC11_group
PA5 ------> COMP_DAC12_group PA5 ------> COMP_DAC12_group
*/ */
void MX_GPIO_Init(void) void MX_GPIO_Init(void)
@@ -57,6 +56,9 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, ETH_PW_Pin|GSM_PW_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, U485_RT_Pin|LORA_TX_Pin|LORA_RX_Pin|SPI2_NSS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, U485_RT_Pin|LORA_TX_Pin|LORA_RX_Pin|SPI2_NSS_Pin, GPIO_PIN_RESET);
@@ -64,9 +66,6 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOE, LORA_M1_Pin|RELAY1_Pin|RELAY2_Pin|S4851_RT_Pin HAL_GPIO_WritePin(GPIOE, LORA_M1_Pin|RELAY1_Pin|RELAY2_Pin|S4851_RT_Pin
|S4852_RT_Pin, GPIO_PIN_RESET); |S4852_RT_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GSM_PW_GPIO_Port, GSM_PW_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GSM_RST_GPIO_Port, GSM_RST_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GSM_RST_GPIO_Port, GSM_RST_Pin, GPIO_PIN_RESET);
@@ -84,10 +83,17 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(ETH_STA_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(ETH_STA_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PAPin PAPin */ /*Configure GPIO pins : PAPin PAPin */
GPIO_InitStruct.Pin = DAC1_Pin|DAC2_Pin; GPIO_InitStruct.Pin = ETH_PW_Pin|GSM_PW_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = DAC2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(DAC2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PBPin PBPin PBPin PBPin */ /*Configure GPIO pins : PBPin PBPin PBPin PBPin */
GPIO_InitStruct.Pin = U485_RT_Pin|LORA_TX_Pin|LORA_RX_Pin|SPI2_NSS_Pin; GPIO_InitStruct.Pin = U485_RT_Pin|LORA_TX_Pin|LORA_RX_Pin|SPI2_NSS_Pin;
@@ -111,13 +117,6 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(LORA_DI0_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(LORA_DI0_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = GSM_PW_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GSM_PW_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */ /*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = GSM_RST_Pin; GPIO_InitStruct.Pin = GSM_RST_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -131,6 +130,7 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
} }
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
+2 -2
View File
@@ -74,7 +74,7 @@ extern TIM_HandleTypeDef htim2;
/* USER CODE BEGIN EV */ /* USER CODE BEGIN EV */
extern void MX_UART_IRQHandle (void); extern void MX_UART_IRQHandle (void);
extern void uart_SystemTick (void); extern void MX_UART_TickHandle (void);
//extern void main_Systick (void); //extern void main_Systick (void);
/* USER CODE END EV */ /* USER CODE END EV */
@@ -153,7 +153,7 @@ void DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQHandler(void)
void TIM2_IRQHandler(void) void TIM2_IRQHandler(void)
{ {
/* USER CODE BEGIN TIM2_IRQn 0 */ /* USER CODE BEGIN TIM2_IRQn 0 */
uart_SystemTick(); MX_UART_TickHandle();
//main_Systick(); //main_Systick();
MX_IWDG_Reload(); MX_IWDG_Reload();
MX_WWDG_Relad(); MX_WWDG_Relad();
+1 -119
View File
@@ -24,21 +24,8 @@
__IO static uint32_t s_UartRecvTimer[UartMax] = {0, 0, 0, 0, 0, 0, 0, 0};
// static USART_TypeDef *UARTInstance[UartMax] = {LPUART1, LPUART2, USART1, USART2, USART3, USART4, USART5, USART6};
static char s_u2RxBuf[USART2_MAX_LENGTH];
static char s_u4RxBuf[USART4_MAX_LENGTH];
UartBuff_t s_Ubuffer[UartMax];
void uart_SystemTick (void)
{
for (int i = 0; i < UartMax; i++)
{
if (s_UartRecvTimer[i] > 1)
s_UartRecvTimer[i]--;
}
}
/* USER CODE END 0 */ /* USER CODE END 0 */
@@ -191,8 +178,6 @@ void MX_USART2_UART_Init(void)
/* USER CODE BEGIN USART2_Init 0 */ /* USER CODE BEGIN USART2_Init 0 */
s_Ubuffer[Uart2].rxBuf = s_u2RxBuf;
s_Ubuffer[Uart2].rxMaxLen = USART2_MAX_LENGTH;
/* USER CODE END USART2_Init 0 */ /* USER CODE END USART2_Init 0 */
/* USER CODE BEGIN USART2_Init 1 */ /* USER CODE BEGIN USART2_Init 1 */
@@ -281,8 +266,6 @@ void MX_USART4_UART_Init(void)
{ {
/* USER CODE BEGIN USART4_Init 0 */ /* USER CODE BEGIN USART4_Init 0 */
s_Ubuffer[Uart4].rxBuf = s_u4RxBuf;
s_Ubuffer[Uart4].rxMaxLen = USART4_MAX_LENGTH;
/* USER CODE END USART4_Init 0 */ /* USER CODE END USART4_Init 0 */
/* USER CODE BEGIN USART4_Init 1 */ /* USER CODE BEGIN USART4_Init 1 */
@@ -625,7 +608,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
*/ */
GPIO_InitStruct.Pin = U485_TX_Pin|U485_RX_Pin; GPIO_InitStruct.Pin = U485_TX_Pin|U485_RX_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF8_USART5; GPIO_InitStruct.Alternate = GPIO_AF8_USART5;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
@@ -886,108 +869,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
void MX_UART_IRQHandle (void)
{
uint8_t ret;
if (USART2->ISR & (1 << 5))
{
ret = USART2->RDR;
if (s_Ubuffer[Uart2].rxBuf != NULL)
{
s_Ubuffer[Uart2].rxBuf[s_Ubuffer[Uart2].rxLen++] = ret;
s_UartRecvTimer[Uart2] = 30;
if (s_Ubuffer[Uart2].rxLen > s_Ubuffer[Uart2].rxMaxLen)
s_Ubuffer[Uart2].rxLen = 0;
}
}
if (USART4->ISR & (1 << 5))
{
ret = USART4->RDR;
if (s_Ubuffer[Uart4].rxBuf != NULL)
{
s_Ubuffer[Uart4].rxBuf[s_Ubuffer[Uart4].rxLen++] = ret;
s_UartRecvTimer[Uart4] = 30;
if (s_Ubuffer[Uart4].rxLen > s_Ubuffer[Uart4].rxMaxLen)
s_Ubuffer[Uart4].rxLen = 0;
}
}
}
int MX_UART_IsReady (Uart_t uart)
{
uint32_t ret = s_UartRecvTimer[uart];
return ret;
}
void MX_UART_Clear (Uart_t uart)
{
s_UartRecvTimer[uart] = 0;
s_Ubuffer[uart].rxLen = 0;
}
int MX_UART_ReadData (Uart_t uart, char *buff, int maxLength)
{
int length = 0;
if (s_Ubuffer[uart].rxBuf != NULL)
{
length = (maxLength > s_Ubuffer[uart].rxLen) ? s_Ubuffer[uart].rxLen : maxLength;
for (int i = 0; i < length; i++)
{
buff[i] = s_Ubuffer[uart].rxBuf[i];
}
}
return length;
}
void MX_UART_PutChar (Uart_t uart, char ch)
{
switch (uart)
{
case LpUart1:
HAL_UART_Transmit (&hlpuart1, (uint8_t *) &ch, 1, 1000);
break;
case LpUart2:
HAL_UART_Transmit (&hlpuart2, (uint8_t *) &ch, 1, 1000);
break;
case Uart1:
HAL_UART_Transmit (&huart1, (uint8_t *) &ch, 1, 1000);
break;
case Uart2:
HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 1000);
break;
case Uart3:
HAL_UART_Transmit (&huart3, (uint8_t *) &ch, 1, 1000);
break;
case Uart4:
HAL_UART_Transmit (&huart4, (uint8_t *) &ch, 1, 1000);
break;
case Uart5:
HAL_UART_Transmit (&huart5, (uint8_t *) &ch, 1, 1000);
break;
case Uart6:
HAL_UART_Transmit (&huart6, (uint8_t *) &ch, 1, 1000);
break;
default:
break;
}
}
void MX_UART_PutBuffer (Uart_t uart, char *buff, int size)
{
for (int i = 0; i < size; i++)
{
MX_UART_PutChar (uart, buff[i]);
}
}
#include <stdarg.h>
#include <stdio.h>
// ÖØ¶¨Òåfputcº¯Êý
int fputc (int ch, FILE *f)
{
HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 2000);
return ch;
}
/* USER CODE END 1 */ /* USER CODE END 1 */
+7 -5
View File
@@ -220,9 +220,9 @@ PA3.Locked=true
PA3.Mode=Asynchronous PA3.Mode=Asynchronous
PA3.Signal=USART2_RX PA3.Signal=USART2_RX
PA4.GPIOParameters=GPIO_Label PA4.GPIOParameters=GPIO_Label
PA4.GPIO_Label=DAC1 PA4.GPIO_Label=ETH_PW
PA4.Locked=true PA4.Locked=true
PA4.Signal=COMP_DAC11_group PA4.Signal=GPIO_Output
PA5.GPIOParameters=GPIO_Label PA5.GPIOParameters=GPIO_Label
PA5.GPIO_Label=DAC2 PA5.GPIO_Label=DAC2
PA5.Locked=true PA5.Locked=true
@@ -497,16 +497,18 @@ RCC.USART3Freq_Value=64000000
RCC.USBFreq_Value=48000000 RCC.USBFreq_Value=48000000
RCC.VCOInputFreq_Value=8000000 RCC.VCOInputFreq_Value=8000000
RCC.VCOOutputFreq_Value=128000000 RCC.VCOOutputFreq_Value=128000000
RealThread.RT-Thread.3.1.5.IPParameters=RTOSJjkernel,RTOSJjdevice,RT_MAIN_THREAD_STACK_SIZE RealThread.RT-Thread.3.1.5.IPParameters=RT_MAIN_THREAD_STACK_SIZE,RT_USING_EVENT,RT_USING_MAILBOX,RT_USING_MESSAGEQUEUE,RT_USING_HEAP,RTOSJjkernel,RTOSJjdevice
RealThread.RT-Thread.3.1.5.RTOSJjdevice=true RealThread.RT-Thread.3.1.5.RTOSJjdevice=true
RealThread.RT-Thread.3.1.5.RTOSJjdevice_Checked=true RealThread.RT-Thread.3.1.5.RTOSJjdevice_Checked=true
RealThread.RT-Thread.3.1.5.RTOSJjkernel=true RealThread.RT-Thread.3.1.5.RTOSJjkernel=true
RealThread.RT-Thread.3.1.5.RTOSJjkernel_Checked=true RealThread.RT-Thread.3.1.5.RTOSJjkernel_Checked=true
RealThread.RT-Thread.3.1.5.RTOSJjshell_Checked=false RealThread.RT-Thread.3.1.5.RTOSJjshell_Checked=false
RealThread.RT-Thread.3.1.5.RT_MAIN_THREAD_STACK_SIZE=4096 RealThread.RT-Thread.3.1.5.RT_MAIN_THREAD_STACK_SIZE=4096
RealThread.RT-Thread.3.1.5.RT_USING_EVENT=1
RealThread.RT-Thread.3.1.5.RT_USING_HEAP=1
RealThread.RT-Thread.3.1.5.RT_USING_MAILBOX=1
RealThread.RT-Thread.3.1.5.RT_USING_MESSAGEQUEUE=1
RealThread.RT-Thread.3.1.5_SwParameter=RTOSJjkernel\:true;RTOSJjshell\:true;RTOSJjdevice\:true; RealThread.RT-Thread.3.1.5_SwParameter=RTOSJjkernel\:true;RTOSJjshell\:true;RTOSJjdevice\:true;
SH.COMP_DAC11_group.0=DAC1_OUT1
SH.COMP_DAC11_group.ConfNb=1
SH.COMP_DAC12_group.0=DAC1_OUT2 SH.COMP_DAC12_group.0=DAC1_OUT2
SH.COMP_DAC12_group.ConfNb=1 SH.COMP_DAC12_group.ConfNb=1
SH.S_TIM15_CH1.0=TIM15_CH1,PWM Generation1 CH1 SH.S_TIM15_CH1.0=TIM15_CH1,PWM Generation1 CH1
+23 -45
View File
@@ -5,27 +5,23 @@
<Header>### uVision Project, (C) Keil Software</Header> <Header>### uVision Project, (C) Keil Software</Header>
<PrjGuiSettings>
<LastAddFilePath>D:\Project\测控一体闸\GB01V\g0b1vetx-board\MDK-ARM</LastAddFilePath>
</PrjGuiSettings>
<ViewPool/> <ViewPool/>
<SECTreeCtrl> <SECTreeCtrl>
<View> <View>
<WinId>38003</WinId> <WinId>38003</WinId>
<ViewName>Registers</ViewName> <ViewName>Registers</ViewName>
<TableColWidths>157 100</TableColWidths> <TableColWidths>157 157</TableColWidths>
</View> </View>
<View> <View>
<WinId>346</WinId> <WinId>346</WinId>
<ViewName>Code Coverage</ViewName> <ViewName>Code Coverage</ViewName>
<TableColWidths>514 656</TableColWidths> <TableColWidths>1010 160</TableColWidths>
</View> </View>
<View> <View>
<WinId>204</WinId> <WinId>204</WinId>
<ViewName>Performance Analyzer</ViewName> <ViewName>Performance Analyzer</ViewName>
<TableColWidths>674 175 175 146</TableColWidths> <TableColWidths>1170</TableColWidths>
</View> </View>
</SECTreeCtrl> </SECTreeCtrl>
@@ -93,25 +89,25 @@
<flags>2</flags> <flags>2</flags>
<showCmd>3</showCmd> <showCmd>3</showCmd>
<MinPosition> <MinPosition>
<xPos>-32000</xPos> <xPos>-1</xPos>
<yPos>-32000</yPos> <yPos>-1</yPos>
</MinPosition> </MinPosition>
<MaxPosition> <MaxPosition>
<xPos>-1</xPos> <xPos>-1</xPos>
<yPos>-1</yPos> <yPos>-1</yPos>
</MaxPosition> </MaxPosition>
<NormalPosition> <NormalPosition>
<Top>-8</Top> <Top>210</Top>
<Left>-8</Left> <Left>-47</Left>
<Right>1030</Right> <Right>1393</Right>
<Bottom>734</Bottom> <Bottom>969</Bottom>
</NormalPosition> </NormalPosition>
</WindowPosition> </WindowPosition>
<MDIClientArea> <MDIClientArea>
<RegID>0</RegID> <RegID>0</RegID>
<MDITabState> <MDITabState>
<Len>1732</Len> <Len>1746</Len>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D00000005000000010000006F443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C66696E73685C66696E73685F6170692E68000000000B66696E73685F6170692E6800000000CACAD500FFFFFFFF6D443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C6465766963655C6465766963652E6300000000086465766963652E6300000000FFDC7800FFFFFFFF3F443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C52542D5468726561645C7274636F6E6669672E68000000000A7274636F6E6669672E6800000000BECEA100FFFFFFFF76443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C6273705C5F74656D706C6174655C637562656D785F636F6E6669675C626F6172642E630000000007626F6172642E6300000000F0A0A100FFFFFFFF5F443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C447269766572735C53544D3332473078785F48414C5F4472697665725C496E635C73746D3332673078785F68616C5F6465662E68000000001373746D3332673078785F68616C5F6465662E6800000000BCA8E100FFFFFFFF3A443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C436F72655C5372635C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF48443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D444B2D41524D5C737461727475705F73746D33326730623178782E730000000015737461727475705F73746D33326730623178782E7300000000F7B88600FFFFFFFF63443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C636F6D706F6E656E74732E63000000000C636F6D706F6E656E74732E6300000000D9ADC200FFFFFFFF64443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F6170692E68000000000B66696E73685F6170692E6800000000A5C2D700FFFFFFFF5D443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C69646C652E63000000000669646C652E6300000000B3A6BE00FFFFFFFF3B443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C436F72655C5372635C75736172742E63000000000775736172742E6300000000EAD6A300FFFFFFFF6B443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C66696E73685C7368656C6C2E6300000000077368656C6C2E6300000000F6FA7D00FFFFFFFF67443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F636F6E6669672E68000000000E66696E73685F636F6E6669672E6800000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000480100006600000080070000D8020000</Data> <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B0000000100000001000000874A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C6465766963655C6465766963652E6300000000086465766963652E6300000000C5D4F200FFFFFFFF594A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C52542D5468726561645C7274636F6E6669672E68000000000A7274636F6E6669672E6800000000FFDC7800FFFFFFFF904A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C6273705C5F74656D706C6174655C637562656D785F636F6E6669675C626F6172642E630000000007626F6172642E6300000000BECEA100FFFFFFFF794A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C447269766572735C53544D3332473078785F48414C5F4472697665725C496E635C73746D3332673078785F68616C5F6465662E68000000001373746D3332673078785F68616C5F6465662E6800000000F0A0A100FFFFFFFF544A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF624A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D444B2D41524D5C737461727475705F73746D33326730623178782E730000000015737461727475705F73746D33326730623178782E73000000009CC1B600FFFFFFFF7D4A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C636F6D706F6E656E74732E63000000000C636F6D706F6E656E74732E6300000000F7B88600FFFFFFFF7E4A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F6170692E68000000000B66696E73685F6170692E6800000000D9ADC200FFFFFFFF774A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C69646C652E63000000000669646C652E6300000000A5C2D700FFFFFFFF554A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C436F72655C5372635C75736172742E63000000000775736172742E6300000000B3A6BE00FFFFFFFF814A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F636F6E6669672E68000000000E66696E73685F636F6E6669672E6800000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000480100006600000080070000D8020000</Data>
</MDITabState> </MDITabState>
</MDIClientArea> </MDIClientArea>
<ViewEx> <ViewEx>
@@ -1805,8 +1801,8 @@
<RegID>59392</RegID> <RegID>59392</RegID>
<Name>File</Name> <Name>File</Name>
<Buttons> <Buttons>
<Len>2806</Len> <Len>2909</Len>
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001052545F5553494E475F434F4E534F4C45960000000000000014001052545F5553494E475F434F4E534F4C450566696E73680E52545F5553494E475F46494E5348000D66696E73685F676574636861721572745F68775F636F6E736F6C655F67657463686172195F5F48414C5F5243435F54494D345F434C4B5F454E41424C45025243035252500357545002434402414D03414D31075452585F434530065057525F55500864656C61795F6D73046D61696E07766F6C6C616765067461626C653006555F7475726E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218Line truncated <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B67547269674576656E7473960000000000000014000B67547269674576656E7473154556454E545F5452494745525F52533438353152580D72745F6576656E745F73656E640F72745F6576656E745F6372656174650ECAE4B3F6B2CECAFDA3BA4E554C4C0D52545F5553494E475F484F4F4B0D72745F6576656E745F726563760A735F4C657665446174610C735F6C6F73745F74696D6572124574684D717474446973436F6E6E65637464104D585F4652454552544F535F496E69741278506F727450656E64535648616E646C65720F5379735469636B5F48616E646C65720768616E646C65730E50656E6453565F48616E646C65720A41542B514D54434F4E4E176E6574776F726B5F756172745F727863616C6C6261636B0972745F7374727374720452535430055057524F4E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000Line truncated
</Buttons> </Buttons>
<OriginalItems> <OriginalItems>
<Len>1423</Len> <Len>1423</Len>
@@ -1822,7 +1818,7 @@
<Name>Build</Name> <Name>Build</Name>
<Buttons> <Buttons>
<Len>976</Len> <Len>976</Len>
<Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008474230315645547896000000000000000100084742303156455478000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008474230315645547896000000000000000100084742303156455478000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
</Buttons> </Buttons>
<OriginalItems> <OriginalItems>
<Len>583</Len> <Len>583</Len>
@@ -3603,16 +3599,7 @@
<ActiveMDIGroup>0</ActiveMDIGroup> <ActiveMDIGroup>0</ActiveMDIGroup>
<MDIGroup> <MDIGroup>
<Size>100</Size> <Size>100</Size>
<ActiveTab>5</ActiveTab> <ActiveTab>1</ActiveTab>
<Doc>
<Name>D:\Project\测控一体闸\GB01V\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\components\finsh\finsh_api.h</Name>
<ColumnNumber>4</ColumnNumber>
<TopLine>141</TopLine>
<CurrentLine>142</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc> <Doc>
<Name>../Middlewares/Third_Party/RealThread_RTOS/components/device/device.c</Name> <Name>../Middlewares/Third_Party/RealThread_RTOS/components/device/device.c</Name>
<ColumnNumber>26</ColumnNumber> <ColumnNumber>26</ColumnNumber>
@@ -3624,9 +3611,9 @@
</Doc> </Doc>
<Doc> <Doc>
<Name>../RT-Thread/rtconfig.h</Name> <Name>../RT-Thread/rtconfig.h</Name>
<ColumnNumber>0</ColumnNumber> <ColumnNumber>7</ColumnNumber>
<TopLine>122</TopLine> <TopLine>122</TopLine>
<CurrentLine>133</CurrentLine> <CurrentLine>134</CurrentLine>
<Folding>1</Folding> <Folding>1</Folding>
<ContractedFolders></ContractedFolders> <ContractedFolders></ContractedFolders>
<PaneID>0</PaneID> <PaneID>0</PaneID>
@@ -3634,7 +3621,7 @@
<Doc> <Doc>
<Name>../Middlewares/Third_Party/RealThread_RTOS/bsp/_template/cubemx_config/board.c</Name> <Name>../Middlewares/Third_Party/RealThread_RTOS/bsp/_template/cubemx_config/board.c</Name>
<ColumnNumber>26</ColumnNumber> <ColumnNumber>26</ColumnNumber>
<TopLine>109</TopLine> <TopLine>106</TopLine>
<CurrentLine>115</CurrentLine> <CurrentLine>115</CurrentLine>
<Folding>1</Folding> <Folding>1</Folding>
<ContractedFolders></ContractedFolders> <ContractedFolders></ContractedFolders>
@@ -3651,9 +3638,9 @@
</Doc> </Doc>
<Doc> <Doc>
<Name>../Core/Src/main.c</Name> <Name>../Core/Src/main.c</Name>
<ColumnNumber>0</ColumnNumber> <ColumnNumber>23</ColumnNumber>
<TopLine>111</TopLine> <TopLine>124</TopLine>
<CurrentLine>120</CurrentLine> <CurrentLine>136</CurrentLine>
<Folding>1</Folding> <Folding>1</Folding>
<ContractedFolders></ContractedFolders> <ContractedFolders></ContractedFolders>
<PaneID>0</PaneID> <PaneID>0</PaneID>
@@ -3677,7 +3664,7 @@
<PaneID>0</PaneID> <PaneID>0</PaneID>
</Doc> </Doc>
<Doc> <Doc>
<Name>../Middlewares/Third_Party/RealThread_RTOS/finsh/finsh_api.h</Name> <Name>J:\add_by_zhangpeng\Project\测控一体闸\Sluice\GB0VETx\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\finsh\finsh_api.h</Name>
<ColumnNumber>0</ColumnNumber> <ColumnNumber>0</ColumnNumber>
<TopLine>87</TopLine> <TopLine>87</TopLine>
<CurrentLine>94</CurrentLine> <CurrentLine>94</CurrentLine>
@@ -3704,16 +3691,7 @@
<PaneID>0</PaneID> <PaneID>0</PaneID>
</Doc> </Doc>
<Doc> <Doc>
<Name>D:\Project\测控一体闸\GB01V\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\components\finsh\shell.c</Name> <Name>J:\add_by_zhangpeng\Project\测控一体闸\Sluice\GB0VETx\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\finsh\finsh_config.h</Name>
<ColumnNumber>23</ColumnNumber>
<TopLine>134</TopLine>
<CurrentLine>143</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>../Middlewares/Third_Party/RealThread_RTOS/finsh/finsh_config.h</Name>
<ColumnNumber>19</ColumnNumber> <ColumnNumber>19</ColumnNumber>
<TopLine>1</TopLine> <TopLine>1</TopLine>
<CurrentLine>12</CurrentLine> <CurrentLine>12</CurrentLine>
+30 -30
View File
@@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel> <nTsel>3</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@@ -114,7 +114,7 @@
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
<tDlgPa></tDlgPa> <tDlgPa></tDlgPa>
<tIfile></tIfile> <tIfile></tIfile>
<pMon>Segger\JL2CM3.dll</pMon> <pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry> <SetRegEntry>
@@ -125,7 +125,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>CMSIS_AGDI</Key> <Key>CMSIS_AGDI</Key>
<Name>-X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC8000 -FN1 -FF0STM32G0Bx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32G0B1VETx$CMSIS\Flash\STM32G0Bx_512.FLM)</Name> <Name>-X"Any" -UAny -O206 -S8 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC8000 -FN1 -FF0STM32G0Bx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32G0B1VETx$CMSIS\Flash\STM32G0Bx_512.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@@ -983,14 +983,6 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
</Group> </Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
<Group> <Group>
<GroupName>Middlewares/RT-Thread/RTOS/kernel</GroupName> <GroupName>Middlewares/RT-Thread/RTOS/kernel</GroupName>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -998,7 +990,7 @@
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>59</FileNumber> <FileNumber>59</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1010,7 +1002,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>60</FileNumber> <FileNumber>60</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1022,7 +1014,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>61</FileNumber> <FileNumber>61</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1034,7 +1026,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>62</FileNumber> <FileNumber>62</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1046,7 +1038,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>63</FileNumber> <FileNumber>63</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1058,7 +1050,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>64</FileNumber> <FileNumber>64</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1070,7 +1062,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>65</FileNumber> <FileNumber>65</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1082,7 +1074,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>66</FileNumber> <FileNumber>66</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1094,7 +1086,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>67</FileNumber> <FileNumber>67</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1106,7 +1098,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>68</FileNumber> <FileNumber>68</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1118,7 +1110,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>69</FileNumber> <FileNumber>69</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1130,7 +1122,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>70</FileNumber> <FileNumber>70</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1142,7 +1134,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>71</FileNumber> <FileNumber>71</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1154,7 +1146,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>72</FileNumber> <FileNumber>72</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1166,7 +1158,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>73</FileNumber> <FileNumber>73</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1178,7 +1170,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>74</FileNumber> <FileNumber>74</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1190,7 +1182,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>75</FileNumber> <FileNumber>75</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1202,7 +1194,7 @@
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>76</FileNumber> <FileNumber>76</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1222,7 +1214,7 @@
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>77</FileNumber> <FileNumber>77</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
@@ -1235,4 +1227,12 @@
</File> </File>
</Group> </Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
</ProjectOpt> </ProjectOpt>
+2 -2
View File
@@ -470,11 +470,11 @@
<Group> <Group>
<GroupName>Board</GroupName> <GroupName>Board</GroupName>
</Group> </Group>
<Group> <Group>
<GroupName>::CMSIS</GroupName> <GroupName>::CMSIS</GroupName>
</Group> </Group>
<Group><GroupName>Middlewares/RT-Thread/RTOS/kernel</GroupName><GroupOption><CommonProperty><UseCPPCompiler>0</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>2</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><GroupArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>4</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></GroupArmAds></GroupOption><Files><File><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><FileArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>0</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></FileArmAds></FileOption></File><File><FileName>context_rvds.S</FileName><FileType>2</FileType><FilePath>../Middlewares/Third_Party/RealThread_RTOS/libcpu/arm/cortex-m0/context_rvds.S</FilePath><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><FileArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>0</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></FileArmAds></FileOption></File><File><FileName>clock.c</FileName><FileType>1</FileType><FilePath>../Middlewares/Third_Party/RealThread_RTOS/src/clock.c</FilePath><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><FileArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>0</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></FileArmAds></FileOption></File><File><FileName>components.c</FileName><FileType>1</FileType><FilePath>../Middlewares/Third_Party/RealThread_RTOS/src/components.c</FilePath><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCLine truncated <Group><GroupName>Middlewares/RT-Thread/RTOS/kernel</GroupName><GroupOption><CommonProperty><UseCPPCompiler>0</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>2</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><GroupArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>4</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></GroupArmAds></GroupOption><Files><File><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><FileArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>0</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></FileArmAds></FileOption></File><File><FileName>context_rvds.S</FileName><FileType>2</FileType><FilePath>../Middlewares/Third_Party/RealThread_RTOS/libcpu/arm/cortex-m0/context_rvds.S</FilePath><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><FileArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>0</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></FileArmAds></FileOption></File><File><FileName>clock.c</FileName><FileType>1</FileType><FilePath>../Middlewares/Third_Party/RealThread_RTOS/src/clock.c</FilePath><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>2</AlwaysBuild><GenerateAssemblyFile>2</GenerateAssemblyFile><AssembleAssemblyFile>2</AssembleAssemblyFile><PublicsOnly>2</PublicsOnly><StopOnExitCode>11</StopOnExitCode><ComprImg>1</ComprImg></CommonProperty><FileArmAds><Cads><interw>2</interw><Optim>0</Optim><oTime>2</oTime><SplitLS>2</SplitLS><OneElfS>2</OneElfS><Strict>2</Strict><EnumInt>2</EnumInt><PlainCh>2</PlainCh><Ropi>2</Ropi><Rwpi>2</Rwpi><wLevel>0</wLevel><uThumb>2</uThumb><uSurpInc>2</uSurpInc><uC99>2</uC99><uGnu>2</uGnu><useXO>2</useXO><v6Lang>0</v6Lang><v6LangP>0</v6LangP><vShortEn>2</vShortEn><vShortWch>2</vShortWch><v6Lto>2</v6Lto><v6WtE>2</v6WtE><v6Rtti>2</v6Rtti></Cads><Aads><interw>2</interw><Ropi>2</Ropi><Rwpi>2</Rwpi><thumb>2</thumb><SplitLS>2</SplitLS><SwStkChk>2</SwStkChk><NoWarn>2</NoWarn><uSurpInc>2</uSurpInc><useXO>2</useXO><ClangAsOpt>1</ClangAsOpt></Aads></FileArmAds></FileOption></File><File><FileName>components.c</FileName><FileType>1</FileType><FilePath>../Middlewares/Third_Party/RealThread_RTOS/src/components.c</FilePath><FileOption><CommonProperty><UseCPPCompiler>2</UseCPPCompiler><RVCLine truncated
</Target> </Target>
</Targets> </Targets>
Submodule Project/Application deleted from 1f36287996.
Submodule Project/BootLoader deleted from 8b0e625e0f.
+4 -4
View File
@@ -93,17 +93,17 @@
// <c1>Using Event // <c1>Using Event
// <i>Using Event // <i>Using Event
//#define RT_USING_EVENT #define RT_USING_EVENT
// </c> // </c>
// <c1>Using MailBox // <c1>Using MailBox
// <i>Using MailBox // <i>Using MailBox
//#define RT_USING_MAILBOX #define RT_USING_MAILBOX
// </c> // </c>
// <c1>Using Message Queue // <c1>Using Message Queue
// <i>Using Message Queue // <i>Using Message Queue
//#define RT_USING_MESSAGEQUEUE #define RT_USING_MESSAGEQUEUE
// </c> // </c>
// </h> // </h>
@@ -114,7 +114,7 @@
// </c> // </c>
// <c1>Dynamic Heap Management // <c1>Dynamic Heap Management
// <i>Dynamic Heap Management // <i>Dynamic Heap Management
//#define RT_USING_HEAP #define RT_USING_HEAP
// </c> // </c>
// <c1>using small memory // <c1>using small memory
// <i>using small memory // <i>using small memory
+17
View File
@@ -0,0 +1,17 @@
#include "util.h"
float Bytes2Float(char * data)
{
Float ff ;
ff.byte[0] = data[1];
ff.byte[1] = data[0];
ff.byte[2] = data[3];
ff.byte[3] = data[2];
return ff.data;
}
+20
View File
@@ -0,0 +1,20 @@
#ifndef _UTIL_H
#define _UTIL_H
#include <stdint.h>
typedef union {
uint32_t data;
char byte[4];
} Int;
typedef union {
float data;
char byte[4];
} Float;
float Bytes2Float(char * data);
#endif
+2
View File
@@ -47,6 +47,8 @@ static const ef_env default_env_set[] = {
{"mqtt_port", "1883"}, {"mqtt_port", "1883"},
{"boot_times", "0"}, {"boot_times", "0"},
{"jump_boot_time", "10"}, // BOOT 等待时间 10s {"jump_boot_time", "10"}, // BOOT 等待时间 10s
{"net_drv", "dtu"}, // mqtt dtu ec200
{"eth2_chann", "1"}, //以太网通道2
// 传感器基础参数配置 // 传感器基础参数配置
{"di1", "0"},// 0 表示未定义 1 表示 上限位,2:下限位 3: 开关4:关 5:停止 {"di1", "0"},// 0 表示未定义 1 表示 上限位,2:下限位 3: 开关4:关 5:停止
+2 -2
View File
@@ -1643,8 +1643,8 @@ void ef_print_env(void)
env_iterator(&env, &using_size, NULL, print_env_cb); env_iterator(&env, &using_size, NULL, print_env_cb);
ef_print("\nmode: next generation\n"); ef_print("\nmode: next generation\r\n");
ef_print("size: %lu/%lu bytes.\n", using_size + (SECTOR_NUM - EF_GC_EMPTY_SEC_THRESHOLD) * SECTOR_HDR_DATA_SIZE, ef_print("size: %lu/%lu bytes.\r\n", using_size + (SECTOR_NUM - EF_GC_EMPTY_SEC_THRESHOLD) * SECTOR_HDR_DATA_SIZE,
ENV_AREA_SIZE - SECTOR_SIZE * EF_GC_EMPTY_SEC_THRESHOLD); ENV_AREA_SIZE - SECTOR_SIZE * EF_GC_EMPTY_SEC_THRESHOLD);
/* unlock the ENV cache */ /* unlock the ENV cache */
+19 -6
View File
@@ -22,11 +22,24 @@ int modbus_m_read_regist(uint8_t id,uint16_t addr,uint16_t length,uint8_t * data
return index; return index;
} }
//// 解析通过03 命令读取回来额寄存器数据
//int modbus_m_read_regist_ack(uint) // 写入寄存器
//{ // addr 寄存器地址
// // id 丛机地址
//} // length 读取丛机数据长度
int modbus_m_write_regist(uint8_t id,uint16_t addr,uint16_t key,uint8_t * data)
{
uint16_t index = 0,crc;
data[index++] = id;
data[index++] = 0x06;
data[index++] = (addr >> 8) & 0x00FF;
data[index++] = addr & 0x00FF;
data[index++] = (key >> 8) & 0x00FF;
data[index++] = key & 0x00FF;
crc = MX_CRC_CALC(data,index);
data[index++] = crc & 0x00FF;
data[index++] = (crc >> 8) & 0x00FF;
return index;
}
+1
View File
@@ -4,6 +4,7 @@
int modbus_m_read_regist(uint8_t id,uint16_t addr,uint16_t length,uint8_t * data); int modbus_m_read_regist(uint8_t id,uint16_t addr,uint16_t length,uint8_t * data);
int modbus_m_write_regist(uint8_t id,uint16_t addr,uint16_t key,uint8_t * data);
#endif #endif
+121
View File
@@ -0,0 +1,121 @@
/* modbus 从机实现*/
#include<stdint.h>
#include "crc.h"
#include "modbus-s.h"
#if !defined(LOG_TAG)
#define LOG_TAG "main"
#endif
#include <elog.h>
void ModbusSlaveInit(ModBusSlave_t * drv,uint8_t ID,uint8_t * data,uint16_t * reg,uint16_t max)
{
drv->ID = ID;
drv->data = data ;
drv->reg = reg;
drv->regmax = max;
}
// 解析modbus 数据
//-1 地址错误
int ModbusSlaveHandle(ModBusSlave_t * drv,uint8_t * data,uint16_t length )
{
uint16_t rcrc = 0,ccrc = 0 ;
if( (data[0] != drv->ID) && (data[0] != 0x00))
{
// 地址错误
return -1;
}
rcrc = ((uint16_t)data[length- 1] << 8) + (uint16_t)data[length- 2] ;
ccrc = MX_CRC_CALC(data,length-2);
if (rcrc != ccrc )
{
log_e("rcrc:%04X,ccrc:%04X\r\n",rcrc,ccrc) ;
return -2;
}
drv->func = data[1] ;
switch (drv->func)
{
case 0x03 :// 读取保持寄存器地址
{
drv->Addr = ((uint16_t)data[2] << 8) + data[3];
drv->length = ((uint16_t)data[4] << 8) + data[5];
break;
}
case 0x04:
break;
case 0x06: // 写入单个保持寄存器
drv->Addr = ((uint16_t)data[2] << 8) + data[3];
drv->data[0] = data[4];
drv->data[1] = data[5];
break;
default:
return -3 ;
break;
}
return 0;
// if() // 寄存器最大值
}
// 从机数据应答
int ModbusSlavePacket(ModBusSlave_t * drv,uint8_t *data)
{
int tx_size = 0;
uint16_t crc = 0;
data[tx_size++] = drv->ID;
data[tx_size++] = drv->func;
char * p = (char *)&drv->reg[drv->Addr];
switch (drv->func)
{
case 0x03:
data[tx_size++] = drv->length *2;
for(int i =0;i < drv->length *2;i++)
{
data[tx_size++] = *p;
p++;
}
break;
case 0x06: //
data[tx_size++] = (drv->Addr >> 8) & 0x00FF;
data[tx_size++] = drv->Addr & 0x00FF;
data[tx_size++] = drv->data[0];
data[tx_size++] = drv->data[1];
break;
default :
break;
}
crc = MX_CRC_CALC(data,tx_size);
data[tx_size++] = crc & 0x00FF;
data[tx_size++] = (crc >> 8) & 0x00FF;
return tx_size;
}
//// 读取保持寄存器的值
//// addr 寄存器地址
//// id 丛机地址
//// length 读取丛机数据长度
//int modbus_m_read_regist(uint8_t id,uint16_t addr,uint16_t length,uint8_t * data)
//{
// uint16_t index = 0,crc;
// data[index++] = id;
// data[index++] = 0x03;
// data[index++] = (addr >> 8) & 0x00FF;
// data[index++] = addr & 0x00FF;
// data[index++] = (length >> 8) & 0x00FF;
// data[index++] = length & 0x00FF;
// crc = MX_CRC_CALC(data,index);
// data[index++] = crc & 0x00FF;
// data[index++] = (crc >> 8) & 0x00FF;
// return index;
//}
//// 解析通过03 命令读取回来额寄存器数据
//int modbus_m_read_regist_ack(uint)
//{
//
//}
+30
View File
@@ -0,0 +1,30 @@
#ifndef _MODBUS_S_H
#define _MODBUS_S_H
#include "stm32g0xx_hal.h"
// modbus 支持的最大地址
#define MODBUS_S_MAX_ADDR 0X000A
typedef struct ModBusSlave_t{
uint8_t ID; // 从机地址
uint8_t func;
uint16_t Addr; // 寄存器地址
uint16_t length; // 寄存器长度
uint8_t * data; // 写入的数据
uint16_t crc; // crc
uint16_t * reg;// 寄存器
uint16_t regmax;
} ModBusSlave_t;
void ModbusSlaveInit(ModBusSlave_t * drv,uint8_t ID,uint8_t * data,uint16_t * reg,uint16_t max);
int ModbusSlaveHandle(ModBusSlave_t * drv,uint8_t * data,uint16_t length );
int ModbusSlavePacket(ModBusSlave_t * drv,uint8_t *data);
#endif