STM32F103 CAN总线配置总结

2023-05-16

stm32的can总线的配置如下:

      CAN_InitStructure.CAN_TTCM=DISABLE;//禁止时间触发通信模式
      CAN_InitStructure.CAN_ABOM=DISABLE;
      CAN_InitStructure.CAN_AWUM=DISABLE;
      CAN_InitStructure.CAN_NART=DISABLE;//CAN报文只被发送1次,不管发送的结果如何(成功、出错或仲裁丢失) 
      CAN_InitStructure.CAN_RFLM=DISABLE;
      CAN_InitStructure.CAN_TXFP=DISABLE;
      CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;
      //CAN_Mode_LoopBack
      //CAN_Mode_Normal
      CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
      CAN_InitStructure.CAN_BS1=CAN_BS1_5tq;//1--16
      CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;//1--8
      CAN_InitStructure.CAN_Prescaler=2;

      CAN_Init(&CAN_InitStructure);
       /* CAN filter init */
      CAN_FilterInitStructure.CAN_FilterNumber=0;//选择过滤器0
      CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//指定过滤器被设置为标识符屏蔽模式
      CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;//给出过滤器位宽为32位

下面根据设置的参数不同来决定can总线can总线的配置情况:

1、对扩展数据帧进行过滤:(只接收扩展数据帧)
      CAN_FilterInitStructure.CAN_FilterIdHigh   = (((u32)slave_id<<3)&0xFFFF0000)>>16;
      CAN_FilterInitStructure.CAN_FilterIdLow   = (((u32)slave_id<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFF;
(注:标准帧数据帧、标准远程帧和扩展远程帧均被过滤)
2、对扩展远程帧过滤:(只接收扩展远程帧)
      CAN_FilterInitStructure.CAN_FilterIdHigh   = (((u32)slave_id<<3)&0xFFFF0000)>>16;
      CAN_FilterInitStructure.CAN_FilterIdLow   = (((u32)slave_id<<3)|CAN_ID_EXT|CAN_RTR_REMOTE)&0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFF;
3、对标准远程帧过滤:(只接收标准远程帧)
      CAN_FilterInitStructure.CAN_FilterIdHigh   = (((u32)slave_id<<21)&0xffff0000)>>16;
      CAN_FilterInitStructure.CAN_FilterIdLow   = (((u32)slave_id<<21)|CAN_ID_STD|CAN_RTR_REMOTE)&0xffff;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFF;
4、对标准数据帧过滤:(只接收标准数据帧)
      CAN_FilterInitStructure.CAN_FilterIdHigh   = (((u32)slave_id<<21)&0xffff0000)>>16;
      CAN_FilterInitStructure.CAN_FilterIdLow   = (((u32)slave_id<<21)|CAN_ID_STD|CAN_RTR_DATA)&0xffff;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFF;
5、对扩展帧进行过滤:(扩展帧不会被过滤掉)
      CAN_FilterInitStructure.CAN_FilterIdHigh   = (((u32)slave_id<<3)&0xFFFF0000)>>16;
      CAN_FilterInitStructure.CAN_FilterIdLow   = (((u32)slave_id<<3)|CAN_ID_EXT)&0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFC;
6、对标准帧进行过滤:(标准帧不会被过滤掉)
      CAN_FilterInitStructure.CAN_FilterIdHigh   = (((u32)slave_id<<21)&0xffff0000)>>16;
      CAN_FilterInitStructure.CAN_FilterIdLow   = (((u32)slave_id<<21)|CAN_ID_STD)&0xffff;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFC;
注:slave_id为要过滤的id号。

标准帧,扩展帧混合配置:

void CAN_Configuration(void)
{
	CAN_InitTypeDef        CAN_InitStructure;
  	CAN_FilterInitTypeDef  CAN_FilterInitStructure;
//	CAN_DeInit();
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN, ENABLE); //
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE ); //复位CAN1所有寄存器

	
	
	/* CAN cell init */
	CAN_InitStructure.CAN_TTCM=DISABLE;				  //ʹÄÜ»òÕß½ûֹʱ¼ä´¥·¢Í¨ÐÅģʽ
	CAN_InitStructure.CAN_ABOM=DISABLE;				  //ʹÄÜ»òÕß½ûÖ¹×Ô¶¯¹Ø±Õ¹ÜÀí
	CAN_InitStructure.CAN_AWUM=DISABLE;				  //ʹÄÜ»òÕß½ûÖ¹×Ô¶¯»½ÐÑģʽ
	CAN_InitStructure.CAN_NART=ENABLE;//DISABLE;	  //使能或禁止自动重传模式
	CAN_InitStructure.CAN_RFLM=DISABLE;				  //ʹÄÜ»òÕß½ûÖ¹½ÓÊÕFIFOËø¶¨Ä£Ê½
	CAN_InitStructure.CAN_TXFP=DISABLE;				  //ʹÄÜ»òÕß½ûÖ¹·¢ËÍFIFOÓÅÏȼ¶
	CAN_InitStructure.CAN_Mode= CAN_Mode_Normal;	  //CANÓ²¼þ¹¤×÷ÔÚÆÕͨģʽÏÂ	CAN_Mode_Normal	  CAN_Mode_LoopBack
	CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;			  //
	CAN_InitStructure.CAN_BS1=CAN_BS1_4tq;			  //
	CAN_InitStructure.CAN_BS2=CAN_BS2_3tq;			  //
	CAN_InitStructure.CAN_Prescaler=1;				  //4000K/(1+1+4)/1 = 500K
	CAN_Init(&CAN_InitStructure);	

	
	#define   ID_REQUEST                          0xf9
			
	  /*第0组滤波器初始化 CAN filter init */	
	CAN_FilterInitStructure.CAN_FilterNumber = 0;//第0组滤波器			
	CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;	
	CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;	//一个32位过滤器
	CAN_FilterInitStructure.CAN_FilterIdHigh = (((u32)ID_REQUEST<<21)&0xffff0000)>>16;
	//(u32)(((CAN_EXT0_ID<<3)&0xFFFF0000)>>16);				
	CAN_FilterInitStructure.CAN_FilterIdLow =  (((u32)ID_REQUEST<<21)|CAN_ID_STD|CAN_RTR_DATA)&0xffff;
	//(u32)(((CAN_EXT0_ID<<3)|CAN_ID_STD|CAN_RTR_DATA)&0xFFFF);			
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO0;		
	CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;			
	CAN_FilterInit(&CAN_FilterInitStructure);
	 /*第1组滤波器初始化 CAN filter init */
	CAN_FilterInitStructure.CAN_FilterNumber=1;	//第1组滤波器					
	CAN_FilterInitStructure.CAN_FilterIdHigh=(u32)(((CAN_EXT1_ID<<3)&0xFFFF0000)>>16);				
	CAN_FilterInitStructure.CAN_FilterIdLow=(u32)(((CAN_EXT1_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF); //Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨µÍ£©						
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;		
	CAN_FilterInit(&CAN_FilterInitStructure);
	 /*µÚ3×éÂ˲¨Æ÷³õʼ»¯CAN filter init */
	 	CAN_FilterInitStructure.CAN_FilterNumber=3;	//µÚ3×é¹ýÂËÆ÷					
	CAN_FilterInitStructure.CAN_FilterIdHigh=(u32)(((CAN_EXT3_ID<<3)&0xFFFF0000)>>16);				//Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨¸ß£©
	CAN_FilterInitStructure.CAN_FilterIdLow=(u32)(((CAN_EXT3_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF); //Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨µÍ£©						
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;		
	CAN_FilterInit(&CAN_FilterInitStructure);
	 /*µÚ5×éÂ˲¨Æ÷³õʼ»¯CAN filter init */
	CAN_FilterInitStructure.CAN_FilterNumber=5;	//µÚ5×é¹ýÂËÆ÷					
	CAN_FilterInitStructure.CAN_FilterIdHigh=(u32)(((CAN_EXT5_ID<<3)&0xFFFF0000)>>16);				//Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨¸ß£©
	CAN_FilterInitStructure.CAN_FilterIdLow=(u32)(((CAN_EXT5_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF); //Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨µÍ£©						
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;		
	CAN_FilterInit(&CAN_FilterInitStructure);
	 /*µÚ6×éÂ˲¨Æ÷³õʼ»¯CAN filter init */
/*	CAN_FilterInitStructure.CAN_FilterNumber=6;	//µÚ6×é¹ýÂËÆ÷					
	CAN_FilterInitStructure.CAN_FilterIdHigh=(u32)(((CAN_EXT6_ID<<3)&0xFFFF0000)>>16);				//Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨¸ß£©
	CAN_FilterInitStructure.CAN_FilterIdLow=(u32)(((CAN_EXT6_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF); //Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨µÍ£©						
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;		
	CAN_FilterInit(&CAN_FilterInitStructure);*/
	/*µÚ9×éÂ˲¨Æ÷³õʼ»¯CAN filter init */
/*	CAN_FilterInitStructure.CAN_FilterNumber=9;	//µÚ9×é¹ýÂËÆ÷					
	CAN_FilterInitStructure.CAN_FilterIdHigh=(u32)(((CAN_EXT9_ID<<3)&0xFFFF0000)>>16);				//Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨¸ß£©
	CAN_FilterInitStructure.CAN_FilterIdLow=(u32)(((CAN_EXT9_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF); //Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨µÍ£©						
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;		
	CAN_FilterInit(&CAN_FilterInitStructure);*/
	/*µÚ13×éÂ˲¨Æ÷³õʼ»¯CAN filter init */
/*	CAN_FilterInitStructure.CAN_FilterNumber=13;	//µÚ13×é¹ýÂËÆ÷					
	CAN_FilterInitStructure.CAN_FilterIdHigh=(u32)(((CAN_EXT13_ID<<3)&0xFFFF0000)>>16);				//Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨¸ß£©
	CAN_FilterInitStructure.CAN_FilterIdLow=(u32)(((CAN_EXT13_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF); //Ñ¡Ôñ¹ýÂËÆ÷±êʶºÅ£¨µÍ£©						
	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;			
	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;				
	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;		
	CAN_FilterInit(&CAN_FilterInitStructure);*/
  /* CAN FIFO0 message pending interrupt enable */ 
  CAN_ITConfig(CAN_IT_TME, ENABLE);
	
	CAN_ITConfig(CAN_IT_FMP0, ENABLE);
	CAN_ITConfig(CAN_IT_FF0, ENABLE);
	CAN_ITConfig(CAN_IT_FOV0, ENABLE);
	
/*	CAN_ITConfig(CAN_IT_FMP1, ENABLE);
	CAN_ITConfig(CAN_IT_FF1, ENABLE);
	CAN_ITConfig(CAN_IT_FOV1, ENABLE);
	
	CAN_ITConfig(CAN_IT_EWG, ENABLE);
	CAN_ITConfig(CAN_IT_EPV, ENABLE);
	CAN_ITConfig(CAN_IT_BOF, ENABLE);
	CAN_ITConfig(CAN_IT_LEC, ENABLE);
	CAN_ITConfig(CAN_IT_ERR, ENABLE);
	CAN_ITConfig(CAN_IT_WKU, ENABLE);
	CAN_ITConfig(CAN_IT_SLK, ENABLE);*/
}

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103 CAN总线配置总结 的相关文章

  • 解决ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)

    如何解决ERROR 2003 HY000 Can t connect to MySQL server on localhost 10061 1 登录到安装Mysql的主机 xff0c 打开cmd命令行工具 xff0c 执行命令mysql u
  • CAN总线多帧即连续帧数据发送 拆包与重装

    1939协议支持多帧数据发送即数据超过8个的帧发送 用户可以通过ID来识别当前帧是否为多帧发送 xff08 连续帧 xff09 xff0c 如果是多帧发送ID xff0c 举例 xff1a 1C EC F4 56 其中 F4和56为目标地址
  • CAN报文格式简析

    Date xff1a 2022 5 11 Author xff1a MJQ Meta xff1a CAN CAN基础篇 CAN报文格式简析 1 Motornala和Intel格式 建议直接看图 xff0c 小白也能秒懂 xff01 注 xf
  • c#通过串口及CAN模块实现上位及下位机通讯

    目录 前言 一 串口 CAN总线 二 使用步骤 1 RS232串口通讯 xff08 指令下发与接收 xff09 2 CAN总线通讯 总结 前言 学习及工作中我们经常会遇到上位机与下位机通讯等工作 xff0c 结合场景使用不同的通讯方式实时通
  • STM32F103 PB3,PB4,PA15,IO不可控问题

    STM32默认启动时PB4 PB3 PA15三个引脚不是普通IO xff0c 而是JTAG的复用功能 xff0c 分别为JNTRST JTDI JTDO 由上可以知要使PB3可以用 须关闭JTAG DP SW DP 可以不管 添加以下配置即
  • 大疆M3508、M2006必备CAN总线知识与配置方法

    大疆M3508 M2006必备CAN总线知识与配置方法 文章目录 大疆M3508 M2006必备CAN总线知识与配置方法前言 xff1a 0x00 需要 额外的 CAN收发器 xff01 xff01 xff01 0x01 硬件层面分析为什么
  • IMX6ULL与STM32F103的CAN通信实现

    IMX6ULL与STM32F103的CAN通信实现 硬件连接驱动层实现IMX6ULLSTM32F103ZET6 应用层实现IMX6ULLSTM32F103ZET6 结果 在上一篇博文中 xff0c 我们利用USBCAN设备及其上位机软件 x
  • Linux Socket CAN——驱动开发(转)

    Linux Socket CAN驱动开发 一 CAN总线协议 CAN是Controller Area Network 控制器局域网 的缩写 CAN通信协议在1986年由德国电气商博世公司所开发 xff0c 主要面向汽车的通信系统 现已是IS
  • 基于NRF24L01的CAN数据透传

    闲谈 xff1a 闲来无聊 xff0c 恰好公司又经常用CAN数据的传输 xff0c 自己觉得要是用无线传送多好 xff0c 然后 xff0c 就是一个奇想 xff0c 就想做一个无线数据的透传 xff0c 恰好身边又有NRF24L01 那
  • STM32F103控制PCA9685产生16路PWM波控制SG90舵机

    STM32控制PCA9685产生16路PWM波控制SG90舵机 如果你能点开这篇文章 xff0c 说明你已经知道PCA9685是多么强大 xff0c NXP公司原本做这片芯片是为了提供给LED使用 xff0c 在其官方文档里也能看到所有PW
  • STM32F103 GPIO内部电路图

    GPIO结构图 GPIO工作模式 输入模式 输入浮空 输入上拉 输入下拉 模拟输入 输出模式 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能
  • CAN学习笔记3:STM32 CAN控制器介绍

    STM32 CAN控制器 1 概述 STM32 CAN控制器 bxCAN 支持CAN 2 0A 和 CAN 2 0B Active版本协议 CAN 2 0A 只能处理标准数据帧且扩展帧的内容会识别错误 而CAN 2 0B Active 可以
  • 山石岩读丨前沿领域探析——汽车CAN总线协议详解及攻击面分析

    1 CAN总线的基本概念以及由来 CAN Controller Area Network 总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线 它起初用于实现汽车内ECU之间可靠的通信 后因其简单实用可靠等特点 而广泛应用于工
  • CAN 帧ID 与J1939 PGN 转换例子

    在saeJ1939中文版中找的三张图如下 例如 0x18 FE DF 00 110 0 0 11111110 11011111 00000000 P R DP PF PS SA 具体参数即为数据段 0 64 优先级为 P 110 2 或6
  • CAN与CANOpen(一)

    CAN与CANOpen 一 基本概念 CAN与CANOpen 二 报文格式 CAN与CANOpen 三 错误处理 CAN与CANOpen 四 CANOpen对象字典 CAN与CANOpen 五 PDO和SDO CAN与CANOpen 六 网
  • MCP2515独立控制器

    1 简介 MCP2515 是一款独立控制器局域网络 Controller Area Network CAN 协议控制器 完全支持 CAN V2 0B 技术规范 该器件能发送和接收标准和扩展数据帧以及远程帧 MCP2515 自带的两个验收屏蔽
  • STM32 CAN/CANFD软件快速配置(HAL库版本)

    STM32 CAN CANFD软件快速配置 HAL库版本 目录 STM32 CAN CANFD软件快速配置 HAL库版本 前言 1 软件编程 1 1 建立工程 1 2 初始化 1 2 1 引脚设置 1 2 2 CAN基本参数设置 1 2 3
  • STM32基本IO的寄存器介绍

    STM32基本IO的寄存器介绍 说明 简介 端口配置低寄存器 32位 数据寄存器 32位 置位 复位寄存器 32位 复位寄存器 16位 锁存寄存器 32位 说明 最近自己在学习STM32 跟着原子哥的STM32教学视频学习 参考的资料有来自
  • 解决keil中 点击setting 程序中断问题

    自己写了一个LED常亮的程序 入门嘛 但是程序在下载后 点击 debug setting 在软件识别J link后 程序是成功的 但是LED不亮了 下面是解决方法 记住把2标记处的对勾去掉就可以了 这个功能是 在你连接完成时自动在Reset
  • 功放诊断测试

    1 切换trace显示时间模式 Toggle time mode 2 测seedkey 需要加载seednkey dll 3 功能寻址和物理寻址切换

随机推荐

  • 使用 Dockerfile 创建一个简单的容器

    Dockerfile Dockerfile 是用于指导 docker 创建自定义 image 的一系列指令 xff0c 是用于创建 image 的蓝图 现在有一个简单的 node 项目 其中Dockerfile 是后面加的 xff0c 初始
  • 导航英语专业词汇——不停更新

    惯性导航 inertia 惯性INS 惯性导航系统GINS 平台惯性导航系统SINS 捷联惯性导航系统IMU 惯性导航元件gyroscope 陀螺仪accelerometer 加速度计 SLAM 词汇词性意思 导航中用 SLAM词组同步定位
  • 不止于linux SSH 基本用法-正反向代理-内外网穿透

    最近小伙伴们纷纷进了实验室 xff0c 就冒出了一系列关于控制远程机器的问题 xff0c 我觉得我还是有必要科普一下的 约定 本文不讲解 Linux 使用方法 xff0c 只讲解机器之间的通信方法 下文中行首的 local 以及 remot
  • 传感器数据滤波算法

    嵌入式应用中 xff0c 系统获取的传感器数据通常不能够直接供应用使用 xff08 存在噪声干扰 xff1a 低频噪声或高频噪声 xff09 xff0c 一般通过一种或者多种滤波算法结合 xff0c 对原始数据进行滤波处理 xff0c 在保
  • 写了一个生成reStructuredText表格的vim插件

    vim官网上有一个rst table xff0c 不过不太好用 xff0c 最大的问题是对中文的支持有欠缺在 f后 xff0c 中文所在的cell的长度会计算错误 扫了一眼它的源码使用了python写的插件 xff0c 所以我就心血来潮也想
  • Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法

    1 简介 Ubuntu 16 04安装完后 还需要做一些配置才能愉快的使用 包括添加软件源 安装搜狗输入法 Chrome浏览器 网易云音乐 配置快捷键 安装git等等 下面就跟着我来配置吧 just do it 2 版本选择 如果你是小白
  • 从入门到放弃之生产环境基于Kubernetes V1.21.10搭建高可用集群

    1 资源规划 名称系统配置IP组件k8s master01CentOS 7 94核8G 500G存储172 16 97 27kube apiserver lt br gt kube controller manager lt br gt k
  • ros c++ 开发错误“集锦”

    集锦 xff0c 才能经常回放 1 error s getMD5Sum is not a member2 ROS datatype md5sum错误 持续更新 1 error s getMD5Sum is not a member 目前观测
  • 嵌入式ARM算法移植与优化

    目录 一 算法优化指导思想 1 算法优化基本原则 2 算法优化方法 二 编译器优化 1 xff0c 函数内联 2 xff0c 消除公共子表达式 3 xff0c 循环展开 4 xff0c GCC优化选项 5 xff0c ARMCC优化选项 三
  • OV2640摄像头驱动与应用代码

    目录 一 摄像头基础 1 1 OV2640参数 1 2 视场角与镜头 二 OV2640驱动 三 OV2640视频接入
  • ubuntu16.04常用软件安装

    目录 1 办公软件 xff1a WPS 2 文本比较工具 Meld 3 版本管理 xff1a git 4 安装wine 5 安装常用库 6 配置阿里源 7 vim 8 OpenCV 9 QT 10 VSCode 11 gparted 1 办
  • RK1109 NPU算法测试demo

    目录 一 矩阵乘法测试 二 测试结果 一 矩阵乘法测试 通过一个简单的矩阵乘法 xff0c 和L2距离计算来测试NPU计算性能与启动NPU的一般方法 具体代码如下 xff1a Example Calculate x y 2 using Ma
  • VS2015远程连接虚拟机

    目录 一 安装VC Linux exe 二 打开VS 选择新建项目 三 配置VS 四 创建项目 一 安装VC Linux exe 下载地址 xff1a 二 打开VS 选择新建项目 三 配置VS 打开VS xff0c 菜单栏点击工具 gt 选
  • MiniFly微型四轴学习与开发日志(四)

    文章目录 任务创建和删除 API 函数任务调度器开启函数分析临界区atkp c 任务创建和删除 API 函数 FreeRTOS 最基本的功能就是任务管理 xff0c 而任务管理最基本的操作就是创建和删除任务 xff0c FreeRTOS 的
  • Git常用命令

    目录 一 提交代码 二 更新本地代码 三 修改项目中Git远程仓库地址 1 开启Git Bash 2 查看git远程仓库地址 3 修改远程仓库地址 4 检查新地址 Git常用命令备忘 一 提交代码 1 在项目内点击Git Bash Here
  • linux动态库找不到

    linux动态库找不到 一 分析二 解决方式一方式二方式三 三 如何检查RPATH的值 问题状态 xff1a xxx so cannot open shared object file No such file or directory 一
  • ubuntu14.04LTS下创建Qt5.5.1桌面快捷方式

    以下是网上的方法 xff0c 我试了一下 xff0c 反正没成功 Ubuntu14 04LTS在桌面上创建Qt5 4 1快捷方式 1 下载并安装Qt5 4 1 xff0c 我的安装路径时home cao Qt5 4 1 xff08 默认路径
  • Linux操作系统之一:简述Linux系统开机引导和启动过程

    Linux操作系统之一 xff1a 简述Linux系统开机引导和启动过程 操作系统的启动分为两个阶段 xff1a 引导boot 启动startup 引导阶段开始于打开电源开关 xff0c 结束于内核初始化完成和 systemd 进程成功运行
  • TCP IP与UDP含义 区别 总结

    TCP IP协议 xff08 一 xff09 网络基础知识 OSI参考模型中每个分层的作用 1 3 1 应用层 xff1a 为应用程序提供服务并规定应用程序中通信相关的细节 xff1b 包括的协议如下 xff1a xff1a 超文本传输协议
  • STM32F103 CAN总线配置总结

    stm32的can总线的配置如下 xff1a CAN InitStructure CAN TTCM 61 DISABLE 禁止时间触发通信模式 CAN InitStructure CAN ABOM 61 DISABLE CAN InitSt