开发中常用串口打印日志,用串口日志打印可以提高解决bug的效率,可以区分不同模块的日志,打印数据前需要指明信息来源(可自定义),方便使用,最好像printf。
知识点总结:
1.VA_LIST用法,可以是传入一个参数也可以是多个
(1)在函数里定义一具VA_LIST型的变量,变量指向参数的指针;
(2)用VA_START宏初始化变量刚定义的VA_LIST变量;
(3)用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型 (如 果函数有多个可变参数的,依次调用VA_ARG获取各个参数);
(4)最后用VA_END宏结束可变参数的获取
2. __VA_ARGS__
表示可变参数列表
3.例程
#define LOG_BUFF_SIZE 2048
uint32_t gsm_serial_log(const char *fmt,...)
{
uint32_t log_size;
va_list ap;
cur_time tim = {0};
char buff[LOG_BUFF_SIZE] ={0};
if(!is_gsm