b49c9ab0c6
完整实现了以下模块: - 系统数据总线(sys_data_bus)模块间通信 - UART/USART/LPUART驱动 + RS485半双工 - I2C驱动(AS5600角度传感器 + AT24C02 EEPROM) - Modbus RTU从站协议 - 步进电机微步进控制(正弦/余弦换相+S曲线加减速) - 到位开关驱动(DI_MIN/DI_MAX) - PGA+ADC电流检测 - 系统监控任务(内存/串口/传感器/任务状态) - LED/Key外设驱动 - 基于CMake + arm-none-eabi-gcc构建系统
44 lines
778 B
C
44 lines
778 B
C
#include "log_driver.h"
|
|
#include "uart_driver.h"
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#define LOG_BUF_SIZE 128
|
|
|
|
int _write(int file, char *ptr, int len)
|
|
{
|
|
(void)file;
|
|
|
|
if (ptr == NULL || len <= 0) {
|
|
return 0;
|
|
}
|
|
|
|
uart_send(UART_ID_UART1, (const uint8_t *)ptr, (uint32_t)len);
|
|
|
|
return len;
|
|
}
|
|
|
|
ret_code_t log_init(void)
|
|
{
|
|
return RET_OK;
|
|
}
|
|
|
|
void log_out(const char *fmt, ...)
|
|
{
|
|
char buf[LOG_BUF_SIZE];
|
|
va_list args;
|
|
int len;
|
|
|
|
va_start(args, fmt);
|
|
len = vsnprintf(buf, sizeof(buf), fmt, args);
|
|
va_end(args);
|
|
|
|
if (len > 0) {
|
|
if ((uint32_t)len >= sizeof(buf)) {
|
|
len = (int)sizeof(buf) - 1;
|
|
}
|
|
uart_send(UART_ID_UART1, (const uint8_t *)buf, (uint32_t)len);
|
|
}
|
|
}
|