当前位置: 首页 > news >正文

网站开发流程分析外贸网站平台有哪些

网站开发流程分析,外贸网站平台有哪些,成品网站分享一下,多语言网站建设方案最近在调试一款电机驱动板 使用的是CAN总线而且板子上只有一个CAN 想移植Easylogger到上面试试easylogger的效果&#xff0c;先实现pritnf的重定向功能来打印输出 只需要添加以下代码即可实现 代码 #include <stdarg.h> uint8_t FDCAN_UserTxBuffer[512]; void FDCAN_p…

最近在调试一款电机驱动板 使用的是CAN总线而且板子上只有一个CAN
想移植Easylogger到上面试试easylogger的效果,先实现pritnf的重定向功能来打印输出
只需要添加以下代码即可实现

代码

#include <stdarg.h>
uint8_t FDCAN_UserTxBuffer[512];
void FDCAN_printf(const char *format, ...)
{va_list args;uint32_t length;va_start(args, format);length = vsnprintf((char *)FDCAN_UserTxBuffer, 512, (char *)format, args);va_end(args);FDCAN_Send_Data(0x100,FDCAN_UserTxBuffer,length);
}
/* CAN 发送一帧数据 */
void FDCAN_Send_Message(uint32_t id, uint8_t *buf, uint8_t len)
{FDCAN_TxHeaderTypeDef TxHeader;/* 配置Tx缓冲区消息 */TxHeader.Identifier = id;                /* 报文ID */TxHeader.IdType = FDCAN_EXTENDED_ID;     /* 扩展ID模式  */TxHeader.TxFrameType = FDCAN_DATA_FRAME; /* 数据帧 */#if defined(CLASSIC_CAN)if (len >= 8)len = 8;uint32_t CAN_FRAME_DL = len ;
#elseuint32_t CAN_FRAME_DL = FDCAN_DLC_BYTES_64; /* FDCAN 默认使用64*/
#endifTxHeader.DataLength = CAN_FRAME_DL;              /* 数据帧长度 */TxHeader.ErrorStateIndicator = FDCAN_ESI_ACTIVE; /*发送节点错误 */TxHeader.BitRateSwitch = FDCAN_BRS_OFF;          /* 无波特率切换 */TxHeader.FDFormat = CAN_MODE;                    /* CAN模式*/TxHeader.TxEventFifoControl = FDCAN_STORE_TX_EVENTS;TxHeader.MessageMarker = 0x01;/* 发送缓冲区消息 */HAL_FDCAN_AddMessageToTxFifoQ(&hfdcan1, &TxHeader, buf);while (HAL_FDCAN_GetTxFifoFreeLevel(&hfdcan1) != 3); /*等待发送完成*/
}
/* CAN发送多帧数据 */
void FDCAN_Send_Data(uint32_t id, uint8_t *buf, uint32_t len)
{uint32_t transmission_times = 0; /* 发送次数 */uint32_t remian_bytes = 0;       /* 剩余字节 */uint32_t frame_length = 0;       /* 帧长度 */#if defined(CLASSIC_CAN)frame_length = 8;
#elseframe_length = 64;
#endiftransmission_times = len / frame_length;remian_bytes = len % frame_length;int i = 0;while (i < transmission_times){FDCAN_Send_Message(id, buf + i * frame_length, len);i++;}if (remian_bytes > 0){FDCAN_Send_Message(id, buf + transmission_times * frame_length, remian_bytes);}
}

定义了一个宏定义来实现log测试和应用的分离

/*** @brief 输出日志任务* @param argument */
void USER_LOG_Task(void *argument)
{for (;;){#ifdef USER_LOG_ENABLEFDCAN_printf("\n Hellow world!\n");#endifosDelay(1000);}
}

实验效果

在这里插入图片描述

参考文章

STM32 printf 重定向到USB-CDC

http://www.yayakq.cn/news/278290/

相关文章:

  • 山东泰安搜索引擎优化排名培训
  • 免费pc网站建设网站规划与网页设计第二版
  • 怎么找到php网站的首页面html百度百科查询
  • 网站开发用 c php团队建设网站介绍
  • 郑州网站建设专业公司江苏分销网站建设
  • 新乡营销网站建设网站建设职责
  • 青岛建站seo公司网页版米游社
  • 拼车网站的建设雨实现建设银行代发工资网站
  • 东莞乐从网站建设35岁以后的程序员有多惨
  • 域名 利用域名做网站 邮箱网站优化 书
  • 保亭交通工程建设局网站wordpress制作挂件
  • 长沙专业外贸建站公司域名值多少钱
  • 荣成网站建设岳阳网站建设一站式服务
  • 营销网站设计上海天气团队网站建设
  • 农产品网站设计方案做教务网站的需求分析
  • 酒店为什么做网站俄罗斯最新
  • 网站用户登录流程图企业oa办公系统大概多少钱一套
  • 网站建设跟推广评价指标有什么关系常德seo招聘
  • 做分析报表的网站成都旅游几月份最佳时间
  • 毕业设计网站开发选题依据wordpress 换首页
  • 石家庄桥西区网站建设中国室内设计协会官网
  • 江门恒达互联网网站建设wordpress创意主题
  • 赤峰市宁城县住房和建设局网站网页界面设计包括哪些原则
  • 南京网站开发公司排名游戏网站建设与策划方案
  • 怎么学习制作网站平台研发
  • 什么网站收录快做网站有什么要求
  • 做设计常用网站优化软件有哪些
  • jsp网站建设项目实战wordpress 手机跳转
  • 高端网站设计有哪些网站开发的评论界面怎么写
  • 网站制作西安企业网站制作wordpress远程执行