diff --git a/Board/di-board.c b/Board/di-board.c index ea97caf..db57117 100644 --- a/Board/di-board.c +++ b/Board/di-board.c @@ -1,41 +1,41 @@ #include "main.h" -int DiReadChann(int chann) +int DiReadChann (int chann) { int ret = -1; - switch(chann) + switch (chann) { - case 1: - { - ret = HAL_GPIO_ReadPin(DI1_GPIO_Port,DI1_Pin); - break; - } - case 2: - { - ret = HAL_GPIO_ReadPin(DI2_GPIO_Port,DI2_Pin); - break; - } - case 3: - { - ret = HAL_GPIO_ReadPin(DI3_GPIO_Port,DI4_Pin); - break; - } - case 4: - { - ret = HAL_GPIO_ReadPin(DI4_GPIO_Port,DI4_Pin); - break; - } - case 5: - { - ret = HAL_GPIO_ReadPin(DI5_GPIO_Port,DI5_Pin); - break; - } - case 6: - { - ret = HAL_GPIO_ReadPin(DI6_GPIO_Port,DI6_Pin); - break; - } + case 1: + { + ret = HAL_GPIO_ReadPin (DI1_GPIO_Port, DI1_Pin); + break; + } + case 2: + { + ret = HAL_GPIO_ReadPin (DI2_GPIO_Port, DI2_Pin); + break; + } + case 3: + { + ret = HAL_GPIO_ReadPin (DI3_GPIO_Port, DI4_Pin); + break; + } + case 4: + { + ret = HAL_GPIO_ReadPin (DI4_GPIO_Port, DI4_Pin); + break; + } + case 5: + { + ret = HAL_GPIO_ReadPin (DI5_GPIO_Port, DI5_Pin); + break; + } + case 6: + { + ret = HAL_GPIO_ReadPin (DI6_GPIO_Port, DI6_Pin); + break; + } } return ret; } diff --git a/Board/di-board.h b/Board/di-board.h index 791519d..355b92f 100644 --- a/Board/di-board.h +++ b/Board/di-board.h @@ -1,9 +1,9 @@ #ifndef _DI_BOARD_H #define _DI_BOARD_H -void DiInit(void); -int DiReadChann(int chann); +void DiInit (void); +int DiReadChann (int chann); -#endif +#endif diff --git a/Board/eth-board.c b/Board/eth-board.c index e43b28a..54f7b8b 100644 --- a/Board/eth-board.c +++ b/Board/eth-board.c @@ -7,11 +7,11 @@ // ³¢ÊÔ´´½¨Socket -const char +const char -void EthMqttTick(void) +void EthMqttTick (void) { if (s_tx_timeout > 1) s_tx_timeout--; @@ -27,7 +27,8 @@ void EthMqttTick(void) // HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //} -static enum { +static enum +{ DeviceReboot, DeviceConfig, DeviceGetPara, @@ -35,13 +36,14 @@ static enum { DeviceReset, DeviceLink, DeviceIdle, -}DeviceState = DeviceReboot ; -static enum { +} DeviceState = DeviceReboot ; +static enum +{ FistIn, Runing, End, JumpUp -}s_run = FistIn; +} s_run = FistIn; @@ -54,11 +56,11 @@ static enum { // NetFunc.ReSubTopic = EthMqttReSubTopic; // NetFunc.Task = EthMqttTask; -void EthMqttInit(void) +void EthMqttInit (void) { // char str[128]; // char addr_str[10]; - + // GPIO_InitTypeDef GPIO_InitStruct; // GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // GPIO_InitStruct.Pull = GPIO_PULLUP; @@ -67,7 +69,7 @@ void EthMqttInit(void) // GPIO_InitStruct.Pin = GPIO_PIN_1; // HAL_GPIO_Init (GPIOB, &GPIO_InitStruct); // HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); - + // GPIO_InitStruct.Mode = GPIO_MODE_INPUT; // GPIO_InitStruct.Pull = GPIO_PULLUP; // GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; @@ -101,42 +103,42 @@ void EthMqttDisConnectd (void) s_lost_timer = 0; DisWriteNetSte (2, QUEUE); DeviceState = DeviceReboot; - dbg_printf("Eth Device IsDisconnected \r\n"); + dbg_printf ("Eth Device IsDisconnected \r\n"); } -int EthMqttReadData(char * buf,int length) +int EthMqttReadData (char * buf, int length) { - int k =0; - if (UartInfoRxIsReady(uEth) == 1) + int k = 0; + if (UartInfoRxIsReady (uEth) == 1) { - k = UartInfoReadData(uEth,(char *)buf,length); - dbg_printf("<<<<<<<<<<<<%d\r\n",k); + k = UartInfoReadData (uEth, (char *) buf, length); + dbg_printf ("<<<<<<<<<<<<%d\r\n", k); s_lost_timer = 60000; DisWriteNetSte (1, QUEUE); } return k; } -int EthMqttIsReady(void) +int EthMqttIsReady (void) { - if (DeviceState != DeviceIdle ) + if (DeviceState != DeviceIdle) { return 0; } else { - return UartInfoRxIsReady(uEth); + return UartInfoRxIsReady (uEth); } } -void EthMqttWriteData(char * data,int length) +void EthMqttWriteData (char * data, int length) { - UartInfoWriteData(uEth,data,length); + UartInfoWriteData (uEth, data, length); } -int EthMqttIsIdle(void) +int EthMqttIsIdle (void) { if (EthMqttIsConnect() == 0) { @@ -148,209 +150,213 @@ int EthMqttIsIdle(void) } -int EthMqttIsConnect(void) +int EthMqttIsConnect (void) { - if (HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_4) == GPIO_PIN_SET) + if (HAL_GPIO_ReadPin (GPIOC, GPIO_PIN_4) == GPIO_PIN_SET) return 1; - else + else return 0; //return s_isconnect; } -void EthMqttTask(void) +void EthMqttTask (void) { int rx_size; char str[128]; //static pst_Work_Pragma pstWork_Pragma; - switch(DeviceState) + switch (DeviceState) { - case DeviceReboot: + case DeviceReboot: + { + if (s_run == FistIn) { - if (s_run == FistIn) - { - dbg_printf("EthDeviceReboot\r\n"); - HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); - s_run_timer = 500; - s_run = Runing; - } - else if (s_run == Runing) - { - if(s_run_timer == 1) - { - s_run_timer = 0; - s_run = End; - HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); - dbg_printf("Reboot Finsh\r\n"); - s_run_timer = 5000; - } - } - else if (s_run == End){ - if (s_run_timer == 1) - { - //dbg_printf("Reboot Finsh\r\n"); - s_run = JumpUp; - s_run_timer = 0; - } - } - else{ - s_run = FistIn ; - DeviceState = DeviceConfig; - } - break; + dbg_printf ("EthDeviceReboot\r\n"); + HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); + s_run_timer = 500; + s_run = Runing; } - // ÕâÀïÒªµÈ´ý3s - case DeviceConfig: // ½øÈëÅäÖÃģʽ + else if (s_run == Runing) { - if(s_run == FistIn) + if (s_run_timer == 1) { - dbg_printf("DeviceConfig\r\n"); - UartInfoClearData (uEth) ; - UartInfoWriteData(uEth,"++++++++++",10); + s_run_timer = 0; + s_run = End; + HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_PIN_SET); + dbg_printf ("Reboot Finsh\r\n"); + s_run_timer = 5000; + } + } + else if (s_run == End) + { + if (s_run_timer == 1) + { + //dbg_printf("Reboot Finsh\r\n"); + s_run = JumpUp; + s_run_timer = 0; + } + } + else + { + s_run = FistIn ; + DeviceState = DeviceConfig; + } + break; + } + // ÕâÀïÒªµÈ´ý3s + case DeviceConfig: // ½øÈëÅäÖÃģʽ + { + if (s_run == FistIn) + { + dbg_printf ("DeviceConfig\r\n"); + UartInfoClearData (uEth) ; + UartInfoWriteData (uEth, "++++++++++", 10); + s_run_timer = 50; + s_run = Runing; + } + else if (s_run == Runing) + { + if (s_run_timer == 1) + { + s_run_timer = 0; + UartInfoWriteData (uEth, "{\"Command\":\"config\"}", strlen ("{\"Command\":\"config\"}")); + dbg_printf ("Command\r\n"); + s_run = End; + s_run_timer = 3000; + } + // »ñÈ¡·¢Ë͵ÄÊý¾Ý + } + else if (s_run == End) + { + if (s_run_timer == 1) + { + s_run = JumpUp; + s_run_timer = 0; + } + } + else + { + s_run = FistIn; + DeviceState = DeviceGetPara; + } + break; + } + case DeviceGetPara: + { + if (UartInfoRxIsReady (uEth) == 1) + { + dbg_printf ("DeviceGetPara\r\n"); + rx_size = UartInfoReadData (uEth, (char *) s_buffer, 1024); + dbg_printf ("(%d)[%d]\r\n", rx_size, s_buffer[0]) ; + DeviceState = DeviceSetPara; + } + break; + } + case DeviceSetPara: + { + if (s_run == FistIn) + { + memset (s_buffer, 0, 1024); + //dbg_printf("subtopic:%s\r\n",(char *)pstWork_Pragma->stExternPragma.stMQTTClient.SubTopic); + sprintf (s_buffer, + "{\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":%d,\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":\"%s\"}", + "Command", "config", + "RemoteHost", SysInfo.remoteAddr, + "RemotePort", SysInfo.remotePort, + "WorkMode", "MQTT", + "UserName", SysInfo.remoteuser, + "Password", SysInfo.remotepass, + "PubTopic", pub_topic, + "SubTopic", sub_topic + ); + //SetParametersToData(pstWork_Pragma,(char *)s_buffer,1024); + dbg_printf ("%s\r\n", s_buffer); + UartInfoWriteData (uEth, s_buffer, strlen (s_buffer)); + s_run_timer = 1000; + s_run = Runing; + } + else if (s_run == Runing) + { + if (s_run_timer == 1) + { + s_run_timer = 0; + UartInfoWriteData (uEth, "{\"Command\":\"exit\"}", strlen ("{\"Command\":\"exit\"}")); + dbg_printf ("Command\r\n"); + s_run = End; s_run_timer = 50; - s_run = Runing; } - else if (s_run == Runing) - { - if(s_run_timer == 1) - { - s_run_timer = 0; - UartInfoWriteData(uEth,"{\"Command\":\"config\"}",strlen("{\"Command\":\"config\"}")); - dbg_printf("Command\r\n"); - s_run = End; - s_run_timer = 3000; - } - // »ñÈ¡·¢Ë͵ÄÊý¾Ý - } - else if (s_run == End) - { - if (s_run_timer == 1) - { - s_run = JumpUp; - s_run_timer = 0; - } - } - else - { - s_run = FistIn; - DeviceState = DeviceGetPara; - } - break; + // »ñÈ¡·¢Ë͵ÄÊý¾Ý } - case DeviceGetPara: + else if (s_run == End) { - if (UartInfoRxIsReady(uEth) == 1) + if (s_run_timer == 1) { - dbg_printf("DeviceGetPara\r\n"); - rx_size = UartInfoReadData(uEth,(char *)s_buffer,1024); - dbg_printf("(%d)[%d]\r\n",rx_size,s_buffer[0]) ; - DeviceState = DeviceSetPara; + s_run = JumpUp; + s_run_timer = 0; } - break; } - case DeviceSetPara: + else { - if(s_run == FistIn) - { - memset(s_buffer,0,1024); - //dbg_printf("subtopic:%s\r\n",(char *)pstWork_Pragma->stExternPragma.stMQTTClient.SubTopic); - sprintf(s_buffer, - "{\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":%d,\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":\"%s\",\"%s\":\"%s\"}", - "Command", "config", - "RemoteHost",SysInfo.remoteAddr, - "RemotePort",SysInfo.remotePort, - "WorkMode","MQTT", - "UserName",SysInfo.remoteuser, - "Password" ,SysInfo.remotepass, - "PubTopic",pub_topic, - "SubTopic",sub_topic - ); - //SetParametersToData(pstWork_Pragma,(char *)s_buffer,1024); - dbg_printf("%s\r\n",s_buffer); - UartInfoWriteData(uEth,s_buffer,strlen(s_buffer)); - s_run_timer = 1000; - s_run = Runing; - } - else if (s_run == Runing) - { - if(s_run_timer == 1) - { - s_run_timer = 0; - UartInfoWriteData(uEth,"{\"Command\":\"exit\"}",strlen("{\"Command\":\"exit\"}")); - dbg_printf("Command\r\n"); - s_run = End; - s_run_timer = 50; - } - // »ñÈ¡·¢Ë͵ÄÊý¾Ý - } - else if (s_run == End) - { - if (s_run_timer == 1) - { - s_run = JumpUp; - s_run_timer = 0; - } - } - else - { - s_run = FistIn; - DeviceState = DeviceReset; - } - break; + s_run = FistIn; + DeviceState = DeviceReset; } - case DeviceReset: + break; + } + case DeviceReset: + { + if (s_run == FistIn) { - if (s_run == FistIn) - { - - HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); - s_run_timer = 500; - s_run = Runing; - } - else if (s_run == Runing) - { - if(s_run_timer == 1) - { - s_run_timer = 0; - s_run = End; - HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); - dbg_printf("Reboot Finsh\r\n"); - s_run_timer = 3000; - } - } - else if (s_run == End){ - if (s_run_timer == 1) - { - dbg_printf("Reboot Finsh\r\n"); - UartInfoClearData (uEth) ; - s_run = JumpUp; - s_run_timer = 0; - } - } - else{ - s_run = FistIn ; - DeviceState = DeviceIdle; - } - break; + + HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); + s_run_timer = 500; + s_run = Runing; } - case DeviceLink:// ¼ì²éÉÏÏß + else if (s_run == Runing) { - s_isconnect = 1; + if (s_run_timer == 1) + { + s_run_timer = 0; + s_run = End; + HAL_GPIO_WritePin (GPIOB, GPIO_PIN_1, GPIO_PIN_SET); + dbg_printf ("Reboot Finsh\r\n"); + s_run_timer = 3000; + } + } + else if (s_run == End) + { + if (s_run_timer == 1) + { + dbg_printf ("Reboot Finsh\r\n"); + UartInfoClearData (uEth) ; + s_run = JumpUp; + s_run_timer = 0; + } + } + else + { + s_run = FistIn ; DeviceState = DeviceIdle; - break; } - case DeviceIdle: + break; + } + case DeviceLink:// ¼ì²éÉÏÏß + { + s_isconnect = 1; + DeviceState = DeviceIdle; + break; + } + case DeviceIdle: + { + if (s_lost_timer == 0) { - if (s_lost_timer == 0) + if (EthMqttIsConnect()) { - if (EthMqttIsConnect()) - { - EthMqttConnectd(); - s_lost_timer = 60000; - } - // µÚÒ»´ÎÉÏÏß + EthMqttConnectd(); + s_lost_timer = 60000; } - break; + // µÚÒ»´ÎÉÏÏß } + break; + } } if (s_lost_timer == 1) { @@ -358,17 +364,17 @@ void EthMqttTask(void) s_run = FistIn ; } } -int EthMqttReSubTopic(char * topic) +int EthMqttReSubTopic (char * topic) { - char addr_str[10]; - memset(addr_str,0,10); - hexbyte_to_hex_str((char *)SysInfo.Addr,addr_str,4); - memset(sub_topic,0,64); - sprintf(sub_topic,"device/%s/tx/22000073%s",topic,addr_str); - memset(pub_topic,0,64); - sprintf(pub_topic,"device/%s/rx/22000073%s",topic,addr_str); - - dbg_printf("EthMqttReSubTopic\r\n"); + char addr_str[10]; + memset (addr_str, 0, 10); + hexbyte_to_hex_str ( (char *) SysInfo.Addr, addr_str, 4); + memset (sub_topic, 0, 64); + sprintf (sub_topic, "device/%s/tx/22000073%s", topic, addr_str); + memset (pub_topic, 0, 64); + sprintf (pub_topic, "device/%s/rx/22000073%s", topic, addr_str); + + dbg_printf ("EthMqttReSubTopic\r\n"); // memset(sub_topic,0,64); // sprintf(sub_topic,"device/%s/tx/22000000%08x",topic,SysInfo.Addr); // memset(pub_topic,0,64); diff --git a/Board/eth-board.h b/Board/eth-board.h index 76d682a..a4eb797 100644 --- a/Board/eth-board.h +++ b/Board/eth-board.h @@ -1,27 +1,27 @@ #ifndef _ETH_BOARD_H #define _ETH_BOARD_H µçѹ -void EthMqttTick(void); -void EthMqttTask(void); -void EthMqttInit(void); +void EthMqttTick (void); +void EthMqttTask (void); +void EthMqttInit (void); -int EthMqttReadData(char * buf,int length); +int EthMqttReadData (char * buf, int length); -int EthMqttIsReady(void); +int EthMqttIsReady (void); -void EthMqttWriteData(char * data,int length); +void EthMqttWriteData (char * data, int length); -int EthMqttIsIdle(void); +int EthMqttIsIdle (void); -int EthMqttIsConnect(void); +int EthMqttIsConnect (void); -int EthMqttReSubTopic(char * topic); +int EthMqttReSubTopic (char * topic); -#endif +#endif diff --git a/Board/network/dtu-board.c b/Board/network/dtu-board.c new file mode 100644 index 0000000..e8a5dc6 --- /dev/null +++ b/Board/network/dtu-board.c @@ -0,0 +1,101 @@ + +#include "main.h" + +#include "os-app.h" + +#include +#include +#include +#include "usart-board.h" + + + +#if !defined(LOG_TAG) + #define LOG_TAG "dtu" +#endif +#include + +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("<<<<<<<<<<<<<<<<<<< +#include +#include +#include "usart-board.h" + + + +#if !defined(LOG_TAG) + #define LOG_TAG "dtu2" +#endif +#include + +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("<<<<<<<<<<<<<<<<<<< 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 ÊäÈë²ÎÊý£º´®¿Ú¾ä±ú @@ -17,46 +151,353 @@ UartDrv_t g_LoRaDrv; // LoRa Ä£ ********************************************/ -void UartInfoInit() +void MX_UART_Init (UartDrv_t *drv) { - -} -void RelayInfoInit(void) -{ - GPIO_InitTypeDef GPIO_InitStruct; - - 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) -{ - HAL_GPIO_WritePin(RelayInfo.Relay1.GPIOx,RelayInfo.Relay1.pin,GPIO_PIN_SET); -} -void RelayCloseDoor(void) -{ - HAL_GPIO_WritePin(RelayInfo.Relay1.GPIOx,RelayInfo.Relay1.pin,GPIO_PIN_RESET); + uint32_t Parity = NULL, WordLength = NULL; + // ¼ìÑéλ + if (drv->DataParity && PARITY_EVEN_MASK != 0) + { + Parity = UART_PARITY_EVEN; + } + else if (drv->DataParity && PARITY_ODD_MASK != 0) + { + Parity = UART_PARITY_ODD; + } + else + { + Parity = UART_PARITY_NONE; + } + // Êý¾Ýλ + if (drv->DataParity && DATA8_MASK != 0) + { + 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 + { + 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 RelayCloseK2(void) + + +void MX_UART_Clear (UartDrv_t * drv) { - HAL_GPIO_WritePin(RelayInfo.Relay2.GPIOx,RelayInfo.Relay2.pin,GPIO_PIN_RESET); + 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 +#include +// ÖØ¶¨Òåfputcº¯Êý +int fputc (int ch, FILE *f) +{ + HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 2000); + return ch; +} + + + + diff --git a/Board/usart-board.h b/Board/usart-board.h index ab6dd3d..40e33e8 100644 --- a/Board/usart-board.h +++ b/Board/usart-board.h @@ -2,43 +2,73 @@ #define _UART_BOARD_H #include - typedef enum UartId_t { - LpUart1, - LpUart2, - Uart1, - Uart2, - Uart3, - Uart4, - Uart5, - Uart6, -}UartId_t; + G0_LPUART1, + G0_LPUART2, + G0_UART1, + G0_UART2, + G0_UART3, + G0_UART4, + G0_UART5, + G0_UART6, + G0_UARTM +} UartId_t; -typedef enum UartPara_t{ - _8N1, - _8E1, - _8O1, - _7O1, - _7E1, - _7N1, -}UartPara_t; +#define PARITY_EVEN_MASK 0X02 +#define PARITY_ODD_MASK 0x04 +#define PARITY_NONE_MASK 0x00 +#define DATA8_MASK 0X00 +#define DATA7_MASK 0X01 -typedef struct UartDrv_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 { UartId_t Id;// ´®¿ÚºÅ uint32_t BaudRate;// ²¨ÌØÂÊ - UartPara_t Para; // Êý¾Ýλ + uint32_t DataParity; // Êý¾Ýλ char * rx_buffer; uint16_t rx_size; - uint32_t rx_ready;// ½ÓÊÜÍê³ÉµÈ´ý´¦Àí -}UartDrv_t; + void (*rxdone) (void); // ½ÓÊÜÍê³É»Øµ÷º¯Êý + uint32_t rx_timer; +} 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 ; - -#endif +// 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 diff --git a/Comm/modbusaddr.h b/Comm/modbusaddr.h new file mode 100644 index 0000000..ea7d551 --- /dev/null +++ b/Comm/modbusaddr.h @@ -0,0 +1,31 @@ +#ifndef MODBUS_ADDR_H +#define MODBUS_ADDR_H +#include + + + +#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 + + diff --git a/Comm/net-app.h b/Comm/net-app.h index 59a5bbd..a25d8ee 100644 --- a/Comm/net-app.h +++ b/Comm/net-app.h @@ -2,9 +2,6 @@ #define _NET_APP_H -// Ô¶³ÌÉý¼¶ºê -#define ETH_MQTT 1 -#define EC200_MQTT 0 @@ -17,7 +14,6 @@ typedef struct netWorkInterface_t int (*IsReady) (void); int (*IsIdle) (void); int (*ReSubTopic) (char *); - void (*Task) (void); } netWorkInterface_t; diff --git a/Comm/networkthread.c b/Comm/networkthread.c index 5ee8909..141b78e 100644 --- a/Comm/networkthread.c +++ b/Comm/networkthread.c @@ -6,12 +6,42 @@ #include #include #include +#include +#include +#include "usart-board.h" ALIGN(RT_ALIGN_SIZE) static char thread_stack[4096]; 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 { netDrvInit = 0, // ³õʼ»¯ÍøÂçÇý¶¯ @@ -22,45 +52,62 @@ static enum { }eDrvStatus; 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) { eDrvStatus = netDrvInit; 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ģʽ£¬¾ÍÊDz»Í¨¹ý±¾µØÅäÖã¬Ö±½Ó͸´« + { + DTUThreadStart(); + // ³õʼ»¯´®¿ÚÇý¶¯ +// interface.Init = NULL; +// interface.IsConnected = NULL; +// interface.IsIdle = NULL; +// interface.IsReady = NULL; +// interface.ReadData = NULL; +// interface.ReSubTopic = NULL; +// interface.WriteData = NULL; + + } // ×¢²áÍøÂçÇý¶¯ // ×¢²áÍøÂçÇý¶¯ 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: - break; - case netDrvSend: - break; - case netDrvRecv: - break; - case netDrvIdle: - break; - default : - break; + } - rt_thread_delay(10); + if ( RT_EOK == rt_event_recv( gnetEvents, EVENT_COMM_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL )) + { + + } + rt_thread_delay(10); } } - - void NET_APPThreadStart(void ) { - /* ´´½¨Ïß³Ì1£¬Ãû³ÆÊÇthread1£¬Èë¿ÚÊÇthread1_entry*/ + /* ´´½¨Ïß³Ì1£¬Ãû³ÆÊÇthread1£¬Èë¿ÚÊÇthread1_entry*/ rt_thread_init(&netapp_thread, "netapp_thread", thread_entry, RT_NULL, &thread_stack[0], sizeof(thread_stack), NET_APP_THREAD_PRIORITY, NET_APP_THREAD_TIMESLICE); - rt_thread_startup(&netapp_thread); return ; @@ -75,3 +122,5 @@ void NET_APPThreadStart(void ) + + diff --git a/Comm/probusthread.c b/Comm/probusthread.c new file mode 100644 index 0000000..a4112ff --- /dev/null +++ b/Comm/probusthread.c @@ -0,0 +1,172 @@ + +#include "main.h" + +#include "os-app.h" + +#include +#include +#include +#include +#include +#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("<<<<<<<<<<<<<<<<<<< 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 ; +} + + + + + + + + + + + + diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 01c9dc1..89fed4f 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -89,8 +89,8 @@ void Error_Handler(void); #define DBG_TX_GPIO_Port GPIOA #define DBG_RX_Pin GPIO_PIN_3 #define DBG_RX_GPIO_Port GPIOA -#define DAC1_Pin GPIO_PIN_4 -#define DAC1_GPIO_Port GPIOA +#define ETH_PW_Pin GPIO_PIN_4 +#define ETH_PW_GPIO_Port GPIOA #define DAC2_Pin GPIO_PIN_5 #define DAC2_GPIO_Port GPIOA #define ADCPW_Pin GPIO_PIN_7 diff --git a/Core/Inc/usart.h b/Core/Inc/usart.h index e7dc20d..e0c586c 100644 --- a/Core/Inc/usart.h +++ b/Core/Inc/usart.h @@ -41,33 +41,9 @@ extern "C" { #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 */ @@ -102,13 +78,13 @@ void MX_USART5_UART_Init(void); void MX_USART6_UART_Init(void); /* 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_ReadData(Uart_t uart, char * buff, int maxLength); -void MX_UART_Clear(Uart_t uart); -void MX_UART_PutChar(Uart_t uart, char ch); -void MX_UART_PutBuffer(Uart_t uart, char *buff,int size); + + +//extern int MX_UART_IsReady(Uart_t uart); +//extern int MX_UART_ReadData(Uart_t uart, char * buff, int maxLength); +//void MX_UART_Clear(Uart_t uart); +//void MX_UART_PutChar(Uart_t uart, char ch); +//void MX_UART_PutBuffer(Uart_t uart, char *buff,int size); /* USER CODE END Prototypes */ #ifdef __cplusplus diff --git a/Core/Src/crc.c b/Core/Src/crc.c index 07d1b00..838107e 100644 --- a/Core/Src/crc.c +++ b/Core/Src/crc.c @@ -39,7 +39,7 @@ void MX_CRC_Init(void) hcrc.Instance = CRC; hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE; hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_DISABLE; - hcrc.Init.GeneratingPolynomial = 7; + hcrc.Init.GeneratingPolynomial = 0x8005; hcrc.Init.CRCLength = CRC_POLYLENGTH_16B; hcrc.Init.InitValue = 0xFFFF; hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_BYTE; diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index a83bf52..3c0b82e 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -38,7 +38,6 @@ * Output * EVENT_OUT * EXTI - PA4 ------> COMP_DAC11_group PA5 ------> COMP_DAC12_group */ void MX_GPIO_Init(void) @@ -57,6 +56,9 @@ void MX_GPIO_Init(void) /*Configure GPIO pin Output Level */ 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 */ 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 |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 */ 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); /*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.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + HAL_GPIO_Init(DAC2_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : PBPin PBPin PBPin PBPin */ 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; 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 */ GPIO_InitStruct.Pin = GSM_RST_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -131,6 +130,7 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + } /* USER CODE BEGIN 2 */ diff --git a/Core/Src/stm32g0xx_it.c b/Core/Src/stm32g0xx_it.c index 830adc9..ac1de06 100644 --- a/Core/Src/stm32g0xx_it.c +++ b/Core/Src/stm32g0xx_it.c @@ -74,7 +74,7 @@ extern TIM_HandleTypeDef htim2; /* USER CODE BEGIN EV */ extern void MX_UART_IRQHandle (void); -extern void uart_SystemTick (void); +extern void MX_UART_TickHandle (void); //extern void main_Systick (void); /* USER CODE END EV */ @@ -153,7 +153,7 @@ void DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQHandler(void) void TIM2_IRQHandler(void) { /* USER CODE BEGIN TIM2_IRQn 0 */ - uart_SystemTick(); + MX_UART_TickHandle(); //main_Systick(); MX_IWDG_Reload(); MX_WWDG_Relad(); diff --git a/Core/Src/usart.c b/Core/Src/usart.c index 11e74aa..90ceb54 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -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 */ @@ -191,8 +178,6 @@ void MX_USART2_UART_Init(void) /* 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 BEGIN USART2_Init 1 */ @@ -281,8 +266,6 @@ void MX_USART4_UART_Init(void) { /* 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 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.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF8_USART5; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); @@ -886,108 +869,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) /* 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 -#include -// ÖØ¶¨Òåfputcº¯Êý -int fputc (int ch, FILE *f) -{ - HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 2000); - return ch; -} /* USER CODE END 1 */ diff --git a/GB01VETx.ioc b/GB01VETx.ioc index 1dfc9f1..82ca368 100644 --- a/GB01VETx.ioc +++ b/GB01VETx.ioc @@ -220,9 +220,9 @@ PA3.Locked=true PA3.Mode=Asynchronous PA3.Signal=USART2_RX PA4.GPIOParameters=GPIO_Label -PA4.GPIO_Label=DAC1 +PA4.GPIO_Label=ETH_PW PA4.Locked=true -PA4.Signal=COMP_DAC11_group +PA4.Signal=GPIO_Output PA5.GPIOParameters=GPIO_Label PA5.GPIO_Label=DAC2 PA5.Locked=true @@ -497,16 +497,18 @@ RCC.USART3Freq_Value=64000000 RCC.USBFreq_Value=48000000 RCC.VCOInputFreq_Value=8000000 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_Checked=true RealThread.RT-Thread.3.1.5.RTOSJjkernel=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.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; -SH.COMP_DAC11_group.0=DAC1_OUT1 -SH.COMP_DAC11_group.ConfNb=1 SH.COMP_DAC12_group.0=DAC1_OUT2 SH.COMP_DAC12_group.ConfNb=1 SH.S_TIM15_CH1.0=TIM15_CH1,PWM Generation1 CH1 diff --git a/MDK-ARM/GB01VETx.uvguix.Memory b/MDK-ARM/GB01VETx.uvguix.Memory index 6630b55..b3a9695 100644 --- a/MDK-ARM/GB01VETx.uvguix.Memory +++ b/MDK-ARM/GB01VETx.uvguix.Memory @@ -5,27 +5,23 @@
### uVision Project, (C) Keil Software
- - D:\Project\测控一体闸\GB01V\g0b1vetx-board\MDK-ARM - - 38003 Registers - 157 100 + 157 157 346 Code Coverage - 514 656 + 1010 160 204 Performance Analyzer - 674 175 175 146 + 1170 @@ -93,25 +89,25 @@ 2 3 - -32000 - -32000 + -1 + -1 -1 -1 - -8 - -8 - 1030 - 734 + 210 + -47 + 1393 + 969 0 - 1732 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D00000005000000010000006F443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C66696E73685C66696E73685F6170692E68000000000B66696E73685F6170692E6800000000CACAD500FFFFFFFF6D443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C6465766963655C6465766963652E6300000000086465766963652E6300000000FFDC7800FFFFFFFF3F443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C52542D5468726561645C7274636F6E6669672E68000000000A7274636F6E6669672E6800000000BECEA100FFFFFFFF76443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C6273705C5F74656D706C6174655C637562656D785F636F6E6669675C626F6172642E630000000007626F6172642E6300000000F0A0A100FFFFFFFF5F443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C447269766572735C53544D3332473078785F48414C5F4472697665725C496E635C73746D3332673078785F68616C5F6465662E68000000001373746D3332673078785F68616C5F6465662E6800000000BCA8E100FFFFFFFF3A443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C436F72655C5372635C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF48443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D444B2D41524D5C737461727475705F73746D33326730623178782E730000000015737461727475705F73746D33326730623178782E7300000000F7B88600FFFFFFFF63443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C636F6D706F6E656E74732E63000000000C636F6D706F6E656E74732E6300000000D9ADC200FFFFFFFF64443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F6170692E68000000000B66696E73685F6170692E6800000000A5C2D700FFFFFFFF5D443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C69646C652E63000000000669646C652E6300000000B3A6BE00FFFFFFFF3B443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C436F72655C5372635C75736172742E63000000000775736172742E6300000000EAD6A300FFFFFFFF6B443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C66696E73685C7368656C6C2E6300000000077368656C6C2E6300000000F6FA7D00FFFFFFFF67443A5C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C47423031565C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F636F6E6669672E68000000000E66696E73685F636F6E6669672E6800000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000480100006600000080070000D8020000 + 1746 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B0000000100000001000000874A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C636F6D706F6E656E74735C6465766963655C6465766963652E6300000000086465766963652E6300000000C5D4F200FFFFFFFF594A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C52542D5468726561645C7274636F6E6669672E68000000000A7274636F6E6669672E6800000000FFDC7800FFFFFFFF904A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C6273705C5F74656D706C6174655C637562656D785F636F6E6669675C626F6172642E630000000007626F6172642E6300000000BECEA100FFFFFFFF794A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C447269766572735C53544D3332473078785F48414C5F4472697665725C496E635C73746D3332673078785F68616C5F6465662E68000000001373746D3332673078785F68616C5F6465662E6800000000F0A0A100FFFFFFFF544A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF624A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D444B2D41524D5C737461727475705F73746D33326730623178782E730000000015737461727475705F73746D33326730623178782E73000000009CC1B600FFFFFFFF7D4A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C636F6D706F6E656E74732E63000000000C636F6D706F6E656E74732E6300000000F7B88600FFFFFFFF7E4A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F6170692E68000000000B66696E73685F6170692E6800000000D9ADC200FFFFFFFF774A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C7372635C69646C652E63000000000669646C652E6300000000A5C2D700FFFFFFFF554A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C436F72655C5372635C75736172742E63000000000775736172742E6300000000B3A6BE00FFFFFFFF814A3A5C6164645F62795F7A68616E6770656E675C50726F6A6563745CB2E2BFD8D2BBCCE5D5A25C536C756963655C474230564554785C67306231766574782D626F6172645C4D6964646C6577617265735C54686972645F50617274795C5265616C5468726561645F52544F535C66696E73685C66696E73685F636F6E6669672E68000000000E66696E73685F636F6E6669672E6800000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000480100006600000080070000D8020000 @@ -1805,8 +1801,8 @@ 59392 File - 2806 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001052545F5553494E475F434F4E534F4C45960000000000000014001052545F5553494E475F434F4E534F4C450566696E73680E52545F5553494E475F46494E5348000D66696E73685F676574636861721572745F68775F636F6E736F6C655F67657463686172195F5F48414C5F5243435F54494D345F434C4B5F454E41424C45025243035252500357545002434402414D03414D31075452585F434530065057525F55500864656C61795F6D73046D61696E07766F6C6C616765067461626C653006555F7475726E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65EE010000 + 2909 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B67547269674576656E7473960000000000000014000B67547269674576656E7473154556454E545F5452494745525F52533438353152580D72745F6576656E745F73656E640F72745F6576656E745F6372656174650ECAE4B3F6B2CECAFDA3BA4E554C4C0D52545F5553494E475F484F4F4B0D72745F6576656E745F726563760A735F4C657665446174610C735F6C6F73745F74696D6572124574684D717474446973436F6E6E65637464104D585F4652454552544F535F496E69741278506F727450656E64535648616E646C65720F5379735469636B5F48616E646C65720768616E646C65730E50656E6453565F48616E646C65720A41542B514D54434F4E4E176E6574776F726B5F756172745F727863616C6C6261636B0972745F7374727374720452535430055057524F4E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65EE010000 1423 @@ -1822,7 +1818,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008474230315645547896000000000000000100084742303156455478000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008474230315645547896000000000000000100084742303156455478000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3603,16 +3599,7 @@ 0 100 - 5 - - D:\Project\测控一体闸\GB01V\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\components\finsh\finsh_api.h - 4 - 141 - 142 - 1 - - 0 - + 1 ../Middlewares/Third_Party/RealThread_RTOS/components/device/device.c 26 @@ -3624,9 +3611,9 @@ ../RT-Thread/rtconfig.h - 0 + 7 122 - 133 + 134 1 0 @@ -3634,7 +3621,7 @@ ../Middlewares/Third_Party/RealThread_RTOS/bsp/_template/cubemx_config/board.c 26 - 109 + 106 115 1 @@ -3651,9 +3638,9 @@ ../Core/Src/main.c - 0 - 111 - 120 + 23 + 124 + 136 1 0 @@ -3677,7 +3664,7 @@ 0 - ../Middlewares/Third_Party/RealThread_RTOS/finsh/finsh_api.h + J:\add_by_zhangpeng\Project\测控一体闸\Sluice\GB0VETx\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\finsh\finsh_api.h 0 87 94 @@ -3704,16 +3691,7 @@ 0 - D:\Project\测控一体闸\GB01V\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\components\finsh\shell.c - 23 - 134 - 143 - 1 - - 0 - - - ../Middlewares/Third_Party/RealThread_RTOS/finsh/finsh_config.h + J:\add_by_zhangpeng\Project\测控一体闸\Sluice\GB0VETx\g0b1vetx-board\Middlewares\Third_Party\RealThread_RTOS\finsh\finsh_config.h 19 1 12 diff --git a/MDK-ARM/GB01VETx.uvoptx b/MDK-ARM/GB01VETx.uvoptx index ca83aa6..66ffb66 100644 --- a/MDK-ARM/GB01VETx.uvoptx +++ b/MDK-ARM/GB01VETx.uvoptx @@ -103,7 +103,7 @@ 1 0 0 - 4 + 3 @@ -114,7 +114,7 @@ - Segger\JL2CM3.dll + BIN\CMSIS_AGDI.dll @@ -125,7 +125,7 @@ 0 CMSIS_AGDI - -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) + -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) 0 @@ -983,14 +983,6 @@ 0 - - ::CMSIS - 0 - 0 - 0 - 1 - - Middlewares/RT-Thread/RTOS/kernel 0 @@ -998,7 +990,7 @@ 0 0 - 10 + 9 59 2 0 @@ -1010,7 +1002,7 @@ 0 - 10 + 9 60 1 0 @@ -1022,7 +1014,7 @@ 0 - 10 + 9 61 1 0 @@ -1034,7 +1026,7 @@ 0 - 10 + 9 62 1 0 @@ -1046,7 +1038,7 @@ 0 - 10 + 9 63 1 0 @@ -1058,7 +1050,7 @@ 0 - 10 + 9 64 1 0 @@ -1070,7 +1062,7 @@ 0 - 10 + 9 65 1 0 @@ -1082,7 +1074,7 @@ 0 - 10 + 9 66 1 0 @@ -1094,7 +1086,7 @@ 0 - 10 + 9 67 1 0 @@ -1106,7 +1098,7 @@ 0 - 10 + 9 68 1 0 @@ -1118,7 +1110,7 @@ 0 - 10 + 9 69 1 0 @@ -1130,7 +1122,7 @@ 0 - 10 + 9 70 1 0 @@ -1142,7 +1134,7 @@ 0 - 10 + 9 71 1 0 @@ -1154,7 +1146,7 @@ 0 - 10 + 9 72 1 0 @@ -1166,7 +1158,7 @@ 0 - 10 + 9 73 1 0 @@ -1178,7 +1170,7 @@ 0 - 10 + 9 74 1 0 @@ -1190,7 +1182,7 @@ 0 - 10 + 9 75 1 0 @@ -1202,7 +1194,7 @@ 0 - 10 + 9 76 1 0 @@ -1222,7 +1214,7 @@ 0 0 - 11 + 10 77 1 0 @@ -1235,4 +1227,12 @@ + + ::CMSIS + 0 + 0 + 0 + 1 + + diff --git a/MDK-ARM/GB01VETx.uvprojx b/MDK-ARM/GB01VETx.uvprojx index baf3739..009fb52 100644 --- a/MDK-ARM/GB01VETx.uvprojx +++ b/MDK-ARM/GB01VETx.uvprojx @@ -470,11 +470,11 @@ Board + + ::CMSIS - - Middlewares/RT-Thread/RTOS/kernel00000222221112022222222422222002222222222222212000012222111202222222202222200222222222222221context_rvds.S2../Middlewares/Third_Party/RealThread_RTOS/libcpu/arm/cortex-m0/context_rvds.S2000012222111202222222202222200222222222222221clock.c1../Middlewares/Third_Party/RealThread_RTOS/src/clock.c2000012222111202222222202222200222222222222221components.c1../Middlewares/Third_Party/RealThread_RTOS/src/components.c2000012222111202222222202222200222222222222221cpu.c1../Middlewares/Third_Party/RealThread_RTOS/src/cpu.c2000012222111202222222202222200222222222222221idle.c1../Middlewares/Third_Party/RealThread_RTOS/src/idle.c2000012222111202222222202222200222222222222221ipc.c1../Middlewares/Third_Party/RealThread_RTOS/src/ipc.c2000012222111202222222202222200222222222222221irq.c1../Middlewares/Third_Party/RealThread_RTOS/src/irq.c2000012222111202222222202222200222222222222221kservice.c1../Middlewares/Third_Party/RealThread_RTOS/src/kservice.c2000012222111202222222202222200222222222222221mem.c1../Middlewares/Third_Party/RealThread_RTOS/src/mem.c2000012222111202222222202222200222222222222221memheap.c1../Middlewares/Third_Party/RealThread_RTOS/src/memheap.c2000012222111202222222202222200222222222222221mempool.c1../Middlewares/Third_Party/RealThread_RTOS/src/mempool.c2000012222111202222222202222200222222222222221object.c1../Middlewares/Third_Party/RealThread_RTOS/src/object.c2000012222111202222222202222200222222222222221scheduler.c1../Middlewares/Third_Party/RealThread_RTOS/src/scheduler.c2000012222111202222222202222200222222222222221slab.c1../Middlewares/Third_Party/RealThread_RTOS/src/slab.c2000012222111202222222202222200222222222222221thread.c1../Middlewares/Third_Party/RealThread_RTOS/src/thread.c2000012222111202222222202222200222222222222221timer.c1../Middlewares/Third_Party/RealThread_RTOS/src/timer.c2000012222111202222222202222200222222222222221cpuport.c1../Middlewares/Third_Party/RealThread_RTOS/libcpu/arm/cortex-m0/cpuport.c2000012222111202222222202222200222222222222221board.c1../Middlewares/Third_Party/RealThread_RTOS/bsp/_template/cubemx_config/board.c2000012222111202222222202222200222222222222221Middlewares/RT-Thread/RTOS/device00000222221112022222222422222002222222222222212000012222111202222222202222200222222222222221device.c1../Middlewares/Third_Party/RealThread_RTOS/components/device/device.c2000012222111202222222202222200222222222222221 diff --git a/Project/Application b/Project/Application deleted file mode 160000 index 1f36287..0000000 --- a/Project/Application +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1f362879968fe20398a8a5544d6a403fd513e691 diff --git a/Project/BootLoader b/Project/BootLoader deleted file mode 160000 index 8b0e625..0000000 --- a/Project/BootLoader +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8b0e625e0f5d0d3c43610598c7ecf3946d886c59 diff --git a/RT-Thread/rtconfig.h b/RT-Thread/rtconfig.h index 243b2cb..c464726 100644 --- a/RT-Thread/rtconfig.h +++ b/RT-Thread/rtconfig.h @@ -93,17 +93,17 @@ // Using Event // Using Event -//#define RT_USING_EVENT +#define RT_USING_EVENT // // Using MailBox // Using MailBox -//#define RT_USING_MAILBOX +#define RT_USING_MAILBOX // // Using Message Queue // Using Message Queue -//#define RT_USING_MESSAGEQUEUE +#define RT_USING_MESSAGEQUEUE // // @@ -114,7 +114,7 @@ // // Dynamic Heap Management // Dynamic Heap Management -//#define RT_USING_HEAP +#define RT_USING_HEAP // // using small memory // using small memory diff --git a/middleware/Util/util.c b/middleware/Util/util.c new file mode 100644 index 0000000..bdf0ce7 --- /dev/null +++ b/middleware/Util/util.c @@ -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; +} + + + + + diff --git a/middleware/Util/util.h b/middleware/Util/util.h new file mode 100644 index 0000000..9f5e29b --- /dev/null +++ b/middleware/Util/util.h @@ -0,0 +1,20 @@ +#ifndef _UTIL_H +#define _UTIL_H +#include + + +typedef union { + uint32_t data; + char byte[4]; +} Int; +typedef union { + float data; + char byte[4]; +} Float; + + +float Bytes2Float(char * data); + +#endif + + diff --git a/middleware/easyflash/port/ef_port.c b/middleware/easyflash/port/ef_port.c index daed0f6..d6f877d 100644 --- a/middleware/easyflash/port/ef_port.c +++ b/middleware/easyflash/port/ef_port.c @@ -47,6 +47,8 @@ static const ef_env default_env_set[] = { {"mqtt_port", "1883"}, {"boot_times", "0"}, {"jump_boot_time", "10"}, // BOOT µÈ´ýʱ¼ä 10s + {"net_drv", "dtu"}, // mqtt dtu ec200 + {"eth2_chann", "1"}, //ÒÔÌ«ÍøÍ¨µÀ2 // ´«¸ÐÆ÷»ù´¡²ÎÊýÅäÖà {"di1", "0"},// 0 ±íʾ䶨Òå 1 ±íʾ ÉÏÏÞ룬2£ºÏÂÏÞλ 3£º ¿ª¹Ø4£º¹Ø 5£ºÍ£Ö¹ diff --git a/middleware/easyflash/src/ef_env.c b/middleware/easyflash/src/ef_env.c index b716baa..b24c233 100644 --- a/middleware/easyflash/src/ef_env.c +++ b/middleware/easyflash/src/ef_env.c @@ -1643,8 +1643,8 @@ void ef_print_env(void) env_iterator(&env, &using_size, NULL, print_env_cb); - ef_print("\nmode: next generation\n"); - ef_print("size: %lu/%lu bytes.\n", using_size + (SECTOR_NUM - EF_GC_EMPTY_SEC_THRESHOLD) * SECTOR_HDR_DATA_SIZE, + ef_print("\nmode: next generation\r\n"); + 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); /* unlock the ENV cache */ diff --git a/middleware/modbus/modbus-m.c b/middleware/modbus/modbus-m.c index bfd53de..c01a4de 100644 --- a/middleware/modbus/modbus-m.c +++ b/middleware/modbus/modbus-m.c @@ -22,11 +22,24 @@ int modbus_m_read_regist(uint8_t id,uint16_t addr,uint16_t length,uint8_t * data 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; +} diff --git a/middleware/modbus/modbus-m.h b/middleware/modbus/modbus-m.h index 09cc8e6..11d8ec2 100644 --- a/middleware/modbus/modbus-m.h +++ b/middleware/modbus/modbus-m.h @@ -4,6 +4,7 @@ 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 diff --git a/middleware/modbus/modbus-s.c b/middleware/modbus/modbus-s.c index e69de29..921265d 100644 --- a/middleware/modbus/modbus-s.c +++ b/middleware/modbus/modbus-s.c @@ -0,0 +1,121 @@ +/* modbus ´Ó»úʵÏÖ*/ + +#include +#include "crc.h" +#include "modbus-s.h" + +#if !defined(LOG_TAG) + #define LOG_TAG "main" +#endif +#include + + +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) +//{ +// +//} + + + diff --git a/middleware/modbus/modbus-s.h b/middleware/modbus/modbus-s.h index e69de29..550a9dd 100644 --- a/middleware/modbus/modbus-s.h +++ b/middleware/modbus/modbus-s.h @@ -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 + +