一、std::string的底层实现1、深拷贝1classString{2public:3String(constString&rhs):m_pstr(newchar[strlen(rhs)+1]()){4}5private:6char*m_pstr;7};这种实现方式,在需要对字符串进行频繁复制而又并不改变字符串内容时,效率比较低下。如果对一块空间只是进行读,就没必要采用深拷贝,当需要进行写的时候,再使用深拷贝申请新的空间2、写时复制(浅拷贝+引用计数) 当只是进行读操作时,就进行浅拷贝,如果需要进行写操作的时候,再进行深拷贝;再加一个引用计数,多个指针指向同一块空间,记录同一块空间的对象个
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器中断的方式,实现流水灯的效果。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。在上一节定时器阻塞延时的基础上,我们在本项目中同样使用TIM3进行中断。时钟频率采用默认的8MHz,我们不妨设置PSC为3999,ARR为999,那么此时可以计算出TIM3的计数脉冲周期为\(T_{CNT}\)为0.5ms,一次中断的溢出时间\(T_{OUT}\)为0.5s。打开CubeMX,建立工程。我们首先将
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器中断的方式,实现流水灯的效果。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。在上一节定时器阻塞延时的基础上,我们在本项目中同样使用TIM3进行中断。时钟频率采用默认的8MHz,我们不妨设置PSC为3999,ARR为999,那么此时可以计算出TIM3的计数脉冲周期为\(T_{CNT}\)为0.5ms,一次中断的溢出时间\(T_{OUT}\)为0.5s。打开CubeMX,建立工程。我们首先将
9.1简介电子线路易于接收来自其他发射器的辐射信号,这些EMI(电磁干扰)使得设备内毗邻的元件不能同时工作。这就有必要进行电磁兼容设计以避免系统内有害的电磁干扰。确保设备不产生多余的辐射,设备也不易受到射频辐射的干扰,采用好的EMC(电磁兼容)设计原则使这些成为可能。(EMC不能只通过设计来保证,其必须受到测试)9.2定义EMC是一个系统在预期的电磁环境内运行而不对其他系统产生不利影响或不受其它系统不利影响的能力。一个系统的电磁兼容性应满足:1、不干扰其他系统2、不易受其他系统的干扰3、自身不干扰换言之,EMC包括辐射、免疫和自兼容。电磁兼容性的每一项包括三个因素:a)源头。噪声的发射体b)
9.1简介电子线路易于接收来自其他发射器的辐射信号,这些EMI(电磁干扰)使得设备内毗邻的元件不能同时工作。这就有必要进行电磁兼容设计以避免系统内有害的电磁干扰。确保设备不产生多余的辐射,设备也不易受到射频辐射的干扰,采用好的EMC(电磁兼容)设计原则使这些成为可能。(EMC不能只通过设计来保证,其必须受到测试)9.2定义EMC是一个系统在预期的电磁环境内运行而不对其他系统产生不利影响或不受其它系统不利影响的能力。一个系统的电磁兼容性应满足:1、不干扰其他系统2、不易受其他系统的干扰3、自身不干扰换言之,EMC包括辐射、免疫和自兼容。电磁兼容性的每一项包括三个因素:a)源头。噪声的发射体b)
9.6.3微控制器级技术解决噪声问题的最佳途径在源头。9.6.3.1多时钟和接地去耦电容:1、容量应足够大以在转换时间内提供所需的电流。2、应足够小以使时钟频率小于电容的谐振频率。还应遵守:1、所有电源/地线对中尽可能是均衡电流。2、除ESD保护外,应避免在内部连接电源引脚和接地引脚。3、芯片上使用独立的电源-地线对来把有噪声的电路和敏感电路隔离开。9.6.3.2消除竞态条件竞态条件定义了一种条件,即:器件输出取决于输入端两个或多个事件,导致设备输出的转换。这就额外增加了系统噪声。9.6.3.3降低系统速度降低系统工作频率至绝对值最小值。9.6.3.4驱动器规格驱动器对于负载充电的速度快于负载
9.6.3微控制器级技术解决噪声问题的最佳途径在源头。9.6.3.1多时钟和接地去耦电容:1、容量应足够大以在转换时间内提供所需的电流。2、应足够小以使时钟频率小于电容的谐振频率。还应遵守:1、所有电源/地线对中尽可能是均衡电流。2、除ESD保护外,应避免在内部连接电源引脚和接地引脚。3、芯片上使用独立的电源-地线对来把有噪声的电路和敏感电路隔离开。9.6.3.2消除竞态条件竞态条件定义了一种条件,即:器件输出取决于输入端两个或多个事件,导致设备输出的转换。这就额外增加了系统噪声。9.6.3.3降低系统速度降低系统工作频率至绝对值最小值。9.6.3.4驱动器规格驱动器对于负载充电的速度快于负载
这一节就大致浏览一下,不细看了。9.6减少EMC/EMI的技术三个方法:1、在源头抑制发射。2、耦合路径尽可能低效。3、受体几乎不受发射影响。9.6.1系统级技术9.6.1.1展频时钟技术(SSC)在数字系统内。周期性的时钟信号是EMI辐射的主要原因。此外,控制与计时信号、地址和数据总线、互连电缆和连接器都会产生EMI发射。屏蔽是通过覆盖发射位置来减少EMI发射的一种简单方式,但额外增加了重量、空间和费用。低通滤波器减少EMI也有自身层面的问题,如对高速系统无效,另一个问题是技术不是系统性的,在任意一个指定节点降低EMI并不能减少在其他节点的发射。更有效的方法:展频时钟技术。将辐射传播到更宽频
这一节就大致浏览一下,不细看了。9.6减少EMC/EMI的技术三个方法:1、在源头抑制发射。2、耦合路径尽可能低效。3、受体几乎不受发射影响。9.6.1系统级技术9.6.1.1展频时钟技术(SSC)在数字系统内。周期性的时钟信号是EMI辐射的主要原因。此外,控制与计时信号、地址和数据总线、互连电缆和连接器都会产生EMI发射。屏蔽是通过覆盖发射位置来减少EMI发射的一种简单方式,但额外增加了重量、空间和费用。低通滤波器减少EMI也有自身层面的问题,如对高速系统无效,另一个问题是技术不是系统性的,在任意一个指定节点降低EMI并不能减少在其他节点的发射。更有效的方法:展频时钟技术。将辐射传播到更宽频
1. 恒等函数1.1. 在代数中,恒等函数指的是函数f(x)=x1.2. 恒等逻辑与getNumbers()和assembleWidgets()的问题域解耦,因为恒等逻辑和问题域是正交的,或者说是独立的2. 类型参数2.1. 将不同函数的区别,即它们的实参类型参数化2.2. 一个泛型名称的标识符,用作客户端在创建泛型实例时指定的具体类型的占位符3. 可选类型3.1. 包含某个类型T的值,或者不包含任何内容3.2. Optional实现3.3. 当处理没有赋值的情况时,使用的逻辑与该值的实际类型并没有关系4. 泛型函数泛型类4.1. 泛型函数(value:T)=>T,它的类型参数是T4.2. 当