初版程序

This commit is contained in:
2026-09-09 14:54:40 +08:00
commit 228e564214
991 changed files with 604588 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
#include "bsp_print.h"
#include "proto_modbus_tcp_master.h"
#include "bsp_Flash.h"
#include "stdio.h"
static u32 last_tick = 0; // 记录上次打印的 tick
/*重定义fputc函数*/
int fputc(int ch, FILE *f)
{
u8 Data = ch;
COM_Uart3.Send(&COM_Uart3,&Data,1);
}
void Debug_UartSend(u8 *pData,u16 Len)
{
//COM_Uart1.Send(&COM_Uart1,pData,Len);
}
void UartSend(u8 ch)
{
COM_Uart3.Send(&COM_Uart3,&ch,1);
}
/**
* @brief 每秒打印一次所有 Modbus TCP 数据(通过串口1)
* @note 该函数需要被主循环(或定时任务)周期性调用。
* 内部使用静态变量记录上次打印时刻,利用 os_timer 判断是否达到1秒。
* 打印内容包括:状态寄存器(8个)、浮点值(26个)、整数值(4个)。
*/
void proto_modbus_print_1s(void)
{
u8 cnt = 0;
// 检查是否已过 1000ms
if (TIME_TRUE == OsTimer_CheckTimeOut(last_tick, osTime_MSecTick, 5000) && Usr_Flash.test == 2)
{
last_tick = osTime_MSecTick; // 更新时间戳
printf(
"\r\n========== Modbus TCP Data ==========\r\n"
"40000~40007: 0x%04X(%u), 0x%04X(%u), 0x%04X(%u), 0x%04X(%u), "
"0x%04X(%u), 0x%04X(%u), 0x%04X(%u), 0x%04X(%u)\r\n"
"40050~40100: %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, "
"%.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, "
"%.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, "
"%.3f, %.3f\r\n"
"40250~40253: %u, %u, %u,\r\n"
"========== End of Dump ==========\r\n",
// 8个状态寄存器(每个打印两次:十六进制和十进制)
modbus_tcp.data.reg_status[0], modbus_tcp.data.reg_status[0],
modbus_tcp.data.reg_status[1], modbus_tcp.data.reg_status[1],
modbus_tcp.data.reg_status[2], modbus_tcp.data.reg_status[2],
modbus_tcp.data.reg_status[3], modbus_tcp.data.reg_status[3],
modbus_tcp.data.reg_status[4], modbus_tcp.data.reg_status[4],
modbus_tcp.data.reg_status[5], modbus_tcp.data.reg_status[5],
modbus_tcp.data.reg_status[6], modbus_tcp.data.reg_status[6],
modbus_tcp.data.reg_status[7], modbus_tcp.data.reg_status[7],
// 26个浮点值
modbus_tcp.data.float_values[0],
modbus_tcp.data.float_values[1],
modbus_tcp.data.float_values[2],
modbus_tcp.data.float_values[3],
modbus_tcp.data.float_values[4],
modbus_tcp.data.float_values[5],
modbus_tcp.data.float_values[6],
modbus_tcp.data.float_values[7],
modbus_tcp.data.float_values[8],
modbus_tcp.data.float_values[9],
modbus_tcp.data.float_values[10],
modbus_tcp.data.float_values[11],
modbus_tcp.data.float_values[12],
modbus_tcp.data.float_values[13],
modbus_tcp.data.float_values[14],
modbus_tcp.data.float_values[15],
modbus_tcp.data.float_values[16],
modbus_tcp.data.float_values[17],
modbus_tcp.data.float_values[18],
modbus_tcp.data.float_values[19],
modbus_tcp.data.float_values[20],
modbus_tcp.data.float_values[21],
modbus_tcp.data.float_values[22],
modbus_tcp.data.float_values[23],
modbus_tcp.data.float_values[24],
modbus_tcp.data.float_values[25],
// 3个整数值
modbus_tcp.data.int_values[0],
modbus_tcp.data.int_values[1],
modbus_tcp.data.int_values[2]
);
}
}