【STM32-代码】

STM32-代码

  • [■ printf() 输出到uart1](#■ printf() 输出到uart1)
  • [■ sscanf()](#■ sscanf())

■ printf() 输出到uart1

c 复制代码
static UART_HandleTypeDef * g_HDebugUART = &huart1;

int fputc(int c, FILE *f) 
{
    (void)f;
    HAL_UART_Transmit(g_HDebugUART, (const uint8_t *)&c, 1, DEBUG_UART_TIMEOUT);
    return c;
}

int fgetc(FILE *f)
{
    uint8_t ch = 0;
    (void)f;

    /* Clear the Overrun flag just before receiving the first character */
    __HAL_UART_CLEAR_OREFLAG(g_HDebugUART);

    /* Wait for reception of a character on the USART RX line and echo this
    * character on console */
    HAL_UART_Receive(g_HDebugUART, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
    HAL_UART_Transmit(g_HDebugUART, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
    return ch;    
}

■ sscanf()

c 复制代码
typedef struct rtc_time {
  int tm_sec;	//seconds [0,59]
  int tm_min;	//minutes [0,59]
  int tm_hour;  //hour [0,23]
  int tm_mday;  //day of month [1,31]
  int tm_mon;   //month of year [1,12]
  int tm_year; // since 1970
  int tm_wday; // sunday = 0
}t_rtc;

t_rtc timeval;
char timeStr[21];
UartReadLine(timeStr, sizeof(timeStr));  //从串口中获取一个字符串

retval = sscanf((char *)timeStr, "%2d/%2d/%2d,%2d:%2d:%2d", &timeval.tm_year, &timeval.tm_mon, \
                &timeval.tm_mday, &timeval.tm_hour, &timeval.tm_min, &timeval.tm_sec);
timeval.tm_year = timeval.tm_year >= 70 ? (1900 + timeval.tm_year) : (2000 + timeval.tm_year);
if (retval < 6)
{
    PrintfResp("\r\nPlease input correct value\r\n");
    break;
}

相关推荐
驴友花雕4 小时前
【花雕动手做】行空板 K10 系列实验之人工智能语音识别小车的10个参考案例
人工智能·单片机·嵌入式硬件·语音识别·行空板 k10 系列实验·花雕动手做·小车的10个参考案例
hsjiasb4 小时前
FreeRTOS学习(二十七)——任务栈与栈溢出检测
开发语言·stm32·学习·学习笔记·freertos
日拱一卒的小田10 小时前
ZYNQ学习笔记3-ZYNQ的IIC控制器1
笔记·单片机·学习
cardinal_50811 小时前
STM32MP157F-DK2开发板构建交叉编译链
stm32·单片机·嵌入式硬件
小羊先生car11 小时前
F429-HAL-RS485(回环/双机实验)(2026/8/16)
c语言·单片机·嵌入式硬件·软件构建
木白CPP11 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
zlinear数据采集卡13 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
水果里面有苹果15 小时前
33-TPS62130RGTR-3A降压器
嵌入式硬件
振南的单片机世界16 小时前
推挽vs开漏:一个“强拉硬灌”,一个“只拉不管”
arm开发·stm32·单片机·嵌入式硬件
小心亦新16 小时前
STM32学习23--I2C-1
stm32·嵌入式硬件·学习