关于IIC总线使用示波器采集只观察到一半VCC电平的现象
今天同事发现了一个有意思的现象,IIC主机发送8bit数据后,从机回复一个低电平。但是示波器却采集到了一个只有一半电压的电平。先上电路图。 IIC电路图没啥问题,再上发现问题时的时序图,如下。 首先我们先简单回顾一下IIC时序。SCL,SDA高电平总线空闲。SCL保持高电平时,SDA由高->低跳变为起始信号。SDA由低->高为结束信号。传……
Sourceinsight的函数注释,文件头注释插件的安装以及使用
一 下载插件 该插件的主要功能是为函数添加注释,生成头文件,生成标记注释。 二 安装插件 把下载的文件放到sourceinsight的Base工程的路径下(一般是在C:\用户\<登录账号名>\My Documents\Source Insight\Projects\Base),一般em文件是sourceins……
Arduino安装器件包
由于Arduino目前通过在线安装的方式无法下载到器件包,所以可以通过以下方式下载 一、安装Arduino 自己操作 二、添加开发板网址 点击左下角的“点击查看非官网开发板支持网址列表”,然后在该网址下找到自己需要的开发板,把链接复制过来,比如这里的https://arduino.esp8266.com/stable/package_esp8266com……
关于C++全局对象不调用构造函数的问题
背景 我们知道main函数之外的全局变量,如果在不同的cpp文件,其构造函数的执行顺序是不可控,可能会出现指针指飞等异常,因此,构造函数里只做一些简单的变量的初始化。而在STM32平台使用C++编码的过程中,我发现全局对象和静态对象,在使用中出现异常,我能够在程序中调用这个对象的方法。但是执行后与预期结果不符。 分析 通过串口打印这个对象的属性……
预处理–文件包含(#include)可能引发的编译错误
#include,它可以将一个文件的全部内容拷贝另一个文件中。那如果这个包含的文件出错,可能报错的就不在这个文件中。 这里有一个CMainApp.cpp文件,他包含了三个头文件,分别是CMainApp.h,aaa.h,CMcuFlash.h。 #include "CMainApp.h" #include "aaa.h"……
不常见但是效率很高的算法
int func(uint32 x){ int countx = 0; while( x ) { countx ++; x = x&(x-1); } return countx; ……
使用gcc编译STM32的对的.ld .map文件的理解
使用arm-none-eabi-gcc (Sourcery G++ Lite For AMR)编译STM32的C++程序后的.ld .map文件的理解 以stm32f030rct6为例,在stm32f0_stm32f030xc.ld,有如下一段脚本。 /* Entry Point */ ENTRY(Reset_Handler) /* Highest ……
结构体重载运算符大全(运算、比较、赋值、输入输出)
运算:+, -, *, /, +=等等 比较:>, = ,<, ≥, ≤, ==, !=等 赋值:= 输入:>> 输出:<< 文章转载于https://blog.csdn.net/weixin_43899069/article/details/104442108 #include #include using name……
C/C++两个数组之间可以直接赋值吗?
想屁吃呢,当然不可以! 但是我们可以通过其他的途径实现,首先我们知道结构体是可以直接赋值操作的(可以去看编译好的汇编代码,其中结构体赋值采用是类似于memcpy这种形式,而不是逐个字段的拷贝。)不管是简单的数据类型如int、float等或者数组、指针、结构体等这些复杂数据类型,只要两个结构体类型相同,就可以实现赋值。但是值得注意的是,结构体在赋值的时候只是简……
- 1
- 2