引脚输出的隐藏BUG | 深入思考

    最近在看一个接手项目的时候,突然发现了看门狗(外部看门狗)程序中有这么一条喂狗语句:GPIOC->ODR ^= (uint16_t)0x01;    不知道各位道友看到这条语句的第一想法是什么(当时这条语句被宏定义包装了的)?    ...

有趣的问题,C语言程序中,为什么十六进制数字以前缀0x开头呢?

  •  Li_Lei Li_Lei 发布于 C语言
  • 0评论
  • 10745次浏览
  • 1541人收藏
  • 2019-08-26 08:42

    C语言允许程序员逐位操作变量,此时,最直观的数字表示方式自然是二进制。不过这样常常会让数字看起来过长,例如十进制的 255 使用二进制表示为 11111111...

有C语言程序员说,使用移位操作代替乘除运算效率更高,真的吗?

在C语言程序开发中,一些移位操作似乎可以达到与乘除法操作一样的效果。例如,4>>1 等于 2,此时右移一位相当于除以 2。类似的,2

有趣的C语言语法:i++和++i的执行效率一样高吗?

本节来讨论一个比较有趣的话题:C语言中的 i++ 和 ++i,编译为程序后,它们的执行效率一样吗?i++; ++i;就C语言代码来看,i++ 和 ++i 都只有一行,看起来似乎二者...

有经验的C语言程序常说的“内存对齐”,原因究竟是什么?

在C语言程序开发中,有时有经验的程序员会提起内存对齐一词,事实上,这也是C语言中结构体的 size 不等于它所有成员 size 之和的原因(C语言中的结构体的size,并不等于它所有成员size之和,为什么?),那么,C语言程序为什么要内存对齐呢?C语言程...

电路图的解读与绘制规则

什么是电路图电路图是用各种电气符号、带注释的方框、简化的外形表示系统、设备、装置、元器件相互关系的电气图。电路图的功能人们在安装、调试、维修和研究电气设备时,只要拿着一张图纸就可以分析电路,而不必把电路板翻来覆去...

时序的基本概念

建立和保持时间建立时间(Tsu)是指在时钟上升沿到来之前数据必须保持稳定的时间,保持时间(Th)是指在时钟上升沿到来以后数据必须保持稳定的时间。一个数据需要在时钟的上升沿被锁存,那么这个数据就必须在这个时钟上升沿的建立...

ST推出超高性价比单片机,只有8个引脚,功能强大,价格便宜

说起单片机,大家都想到的是引脚数众多,体积较大,如48引脚的LQFP48、100引脚的LQFP100,40引脚的DIP40等。但是在做一些小项目的时候,需求简单功能不复杂,用多引脚单片机比较浪费,这时候该怎么办?有没有一些不需要太多的片上...

ALLEGRO中颜 {MOD}设置中,为什么有很多层是重复的,有什么区别?

CADENCE ALLEGRO是一个很复杂的PCB设计软件,它比较严谨。这种软件严谨风格就能让设计者会少犯错误,提高了设计风险。图1今天上尉Shonway就给大家分享一个习惯问题,也是题目中说到的,在ALLEGRO颜 {MOD}设置中有一些层是重复的,...

Altium Designer如何对原理图自动生成元器件库?

Altium Designer线路板设计软件大家都比较熟悉,从高校中protel99se到protel DXP再到Altium Designer各个版本都是一脉相承的,线路板从构思到实物打样经过原理图和PCB两大方面,设计过程中少了"库"这个概念,即使现在AD安装包里包...

「STM32 」EEPROM(AT24C02)的IIC操作实验

我们使用I2C来操控一个EEPROM(AT24C02)实现数据的读写。AT24C02的datasheet可直接在网上下载下来,此刻我们只关注一些重要的芯片信息了:管脚如下:SDA和SCL为I2C总线,vcc和vss分别为电源和地,wc为写保护,mode为模式选择,E0...

「DC motor control 」 3.直流减速电机的转速控制

我们先从一个常识现象入手:对于一般的单片机,假如是avr单片机,它的io口有输出5v的能力,当我们5v输出的时候,电机是转的最快的,但我们供电设备由于一定时间的使用,电量不足的时候,你会发现电机的速度会越来越慢的。从这个例...

「DC motor control 」 2.直流减速电机的方向控制

前面的文章中,我们说直流减速电机的控制,不外乎控制两个量就好了,一个是方向一个是速度。今天我们就来说说怎么使用单片机或者其它控制器来对直流减速电机的方向进行控制。我们都有这么一个通识的认知:对于直流电机,我们给它...

「DC motor control 」 1.初识直流减速电机

这是电磁学中一个非常重要的启蒙实验:据说在1820年4月21日的晚上,丹麦物理学家、化学家奥斯特在无意中接通电源的时候,发现了中间的那个小磁针微微的移动了一下, 然后停在了与导线垂直的方向上,据说他欣喜若逛,在后续的研究...

「STM32 」IIC通讯原理及其实验

I2C两线式串行总线通讯协议,它是由飞利浦开发的,主要用于连接微控制器及其外围设备之间,它是由数据线SDA和信号线SCL构成的,可发送和接收数据即在MUC和I2C设备之间,I2C和I2C之间进行全双工信号传输,高速I2C总线一般可达到400...

发布经验,赚取财富值,与更多的电子工程师一起成长!

写文章

一周热门问题