Files
secs2-SJ/usr/bsp/bsp_print.c
T
2026-09-09 14:54:40 +08:00

95 lines
3.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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]
);
}
}