- 2024-09-07
-
回复了主题帖:
远距离无线充电
远距离无线传输电能,受限于功率与距离的衰减关系,想要接收到比较大功率的电能,都要要求发射端很高的发射功率,传输效率太低,如果换成一些定向能传输,如波束成型雷达之类的,就还有点可能,之前小米的那个隔空充电桩看了图片我觉得是用天线阵列实现的波束成型进行的电能传输,效率应该会比全向的会高一些,但是吧发射端的功率大,靠近发射端附近的电磁场很强,对人体建康有影响的
-
回复了主题帖:
第二道中兴面试题
昨天下午一直在研究这个问题现象,今天早早的又来开始破案了,百度了一下在Dev-C++中调用scanf函数为什么会把其他局部变量改掉的问题,没有查找到特别相近的答案,理论上来说scanf函数已经运行这么多年,应该是不会出这种BUG的,当看到有人对scanf函数的取值分析我才注意到取值类型和数据对齐的问题,以下是的我试验分析过程,大家看看对不对:
1、把局部变量a b的存储地址打印出来,可见由于电脑是64位的,所以变量的内存栈地址也是64位的,其中局部变量a地址为0x62FE1F,字节对齐,局部变量b地址为0x62FE1E,为半字对齐,位置上与a相邻。
此时输入B33,打印结果如图,输出的结果确实为"? B",对于为什么显示"?",这里我也做了实验,对于Dev-C++来说以char类型打印0xEF 0xED等可能由于没有支持相应的扩展字符,所以统一显示为"?",而不是代表变量a的值是字符"?"的数值0x3F(63)。所以我的疑问1:中兴的出题人也有想考查这一点?还要做题的人要非常了解各个开发环境能显示的字符范围?而且题目里面也没有指定是在哪个环境运行,那又有多少人知道当打印输出"?"号时,真实的16进制数据是多少?
2、关于执行scanf函数之后,局部变量被修改为0的问题,这是比较神奇的问题,经过分析之后我认为在不同的平台上运行这段代码,得到的结果可能会不一样,我的分析如下:
1)从上面打印的变量地址可以看到,由于a b都是char型变量,所以在内存栈中分配的大小就是1字节,这个是正确的
2)执行getchar()函数后,确定此时变量a=’B'=66,说明取输入值无问题
3)执行scanf()函数后,此时变量a的值竟然变成了0,这是关键的点,最终影响到了后面的结果值。为什么会这样呢?我们可以看到scanf函数的参数是取一个Int型数据,传入的存储地址是变量b的地址,根据取值类型的原则,scanf函数会把从键盘输入的数值33保存到指定的地址,由于数值33是int类型,所以对应的10进制数据是0x00000021,但是变量b的地址是0x62FE1E,所以软件会从此地址开始写入int数据,即内存栈中从低地址到高地址的数据为:21 00 00 00,可见局部变量a对应地址0x62FE1F的数据变成了00,所以才出后面打印原始值时a=0的现象。另外说一点,如果这段代码放在arm单片机中,由于写入int型数据的地址不是字对齐,那就会出现字节不对齐造成的硬件错误,当然在编译器编译时可能已经会解决此问题,但是像第3)点说的,不对齐也能直接写入不报错的也可能是跟系统和编译器有关系吧。
4)为了验证3)中的推测,我现在输入B16706,其中int型数值16709=0x00004145,即低2字节对应的字符为'A'和'E',可见在执行完scanf函数后变量a变成了'A',变量b变成了'E',与存储地址上是相一致的,说明3)中的猜测是正确的,变量a的值会因为scanf的输入的类型参数而被影响。
继续验证,将变量b定义成int型,同样输入"B33",可见结果就变成了我第一次手算的结果1 B,因为把变量b定义成int型后,它是会进行双字对齐(因为是64位系统)的,可见变量b地址为0x62FE18,这样执行scanf函数之后,变量b有独立的存储空间,就不会把变量a的值给覆盖掉了,所以运行结果就会正常。
综上,我花了将近一天进行验证测试,得到这些结论,也算是有收获,至少弄清楚了问题现象出现的原理,以后在编程开发的时候需要注意这些不起眼的陷阱。
另外,我也想探讨一下中兴的面试官出此题的目的是想考查哪几个点的内容呢,我也想知道自己的这些分析是不是出题人心中的答案,如果有知晓和坛友不妨分享一二。
考点1:getchar函数的使用?
考点2:scanf函数的使用?
考点3:char类型变量在不同开发环境下的显示内容?
考点4:scanf函数执行后修改变量a值的原因?
考点5:+、-双目运算符的优先级?
- 2024-09-06
-
回复了主题帖:
第二道中兴面试题
这个有点意思,其中考查了几个点,我第一次手算是1 B,但是看后面给的答案是? B,我想不通,然后使用Dev-c++进行编程验证,还发现新的问题,大佬们来看看该如何解释?
- 2024-08-29
-
回复了主题帖:
这是不是硬件公司普遍存在的通病
我们跟你们反过来,这些都是软件干,硬件只画板、调板,保证板能用,其他都不管
- 2024-07-12
-
回复了主题帖:
国产芯片避坑
现在设计选型和打样或者小批量都是在立创上完成,确实方便了许多,批量的时候是找代工厂包工包料
- 2024-06-28
-
回复了主题帖:
为什么OMRON继电器驱动电路里不推荐用(d)
官方只给了建议,如果能再详细说明一下此建议的适用范围,或者在什么情况下会影响电路功能,才能让人信服,我个人分析此不建议的电路应该在一些高速开关的场合下可能会出开关可靠性问题,但是在绝大部分应用场景下应该是问题不大
- 2024-06-26
-
回复了主题帖:
《嵌入式软件的时间分析》Cortex-M3的三级流水线与分支预测【阅读笔记3】
有了分支预测之后,自己使用汇编代码写的高精确代码中如果存在判断跳转,会发现这段代码执行时间每次都会不太一样,存在抖动
- 2024-06-25
-
回复了主题帖:
再填一个趣味热成像
秦天qintian0303 发表于 2024-6-25 08:48
这个咱也不敢拆啊,不过确实这个规格的热成像现在越来越多了
想了解的话可以网上找一些相关的拆解帖子看看就可以了,里面是主要是一个热成像传感器,加信号采集传输器件,然后通过UVC传输给手机APP做进一步处理,核心还是在传感器
- 2024-06-24
-
回复了主题帖:
再填一个趣味热成像
秦天qintian0303 发表于 2024-6-21 17:21
确实,有好多竞品,艾睿光电有一个无线也挺不错的,纠结了好一会,其实国产手持的有好多
福禄克胜在可信度高,比较值得信赖,但是说不准里面使用的传感器还是国产的呢,也就是国产的起来了,现在才能买到这么便宜的,不然像256x192这种放在以前不要W以上都买不下来
-
回复了主题帖:
再填一个趣味热成像
wangerxian 发表于 2024-6-21 17:52
自动校准是对焦吧?
不是对焦,是对环境温度作一个校准,有点像是自归零的操作,黑色的挡片遮挡住镜头后采集一次数据作为基础值,类似这样
- 2024-06-21
-
回复了主题帖:
再填一个趣味热成像
前年买过一个国产艾睿光电的T2S+,可以调微距,专门用来看电路板元器件发热的,芯片内部的供电线路发热都能看清楚,价格也是2500左右,分辨率也是256x192,玩了几天新鲜劲过去就申请退货了,平时用得很少,那时有个项目需要用到才买的,为此还研究了很久的热成像知识,其实现在国内好几家的热成像传感器效果要比福禄克用的传感器要好上一些,这东西都是出口管制的,国外不允许出口高分辨率的热成像
- 2024-06-15
-
回复了主题帖:
黑心公司跳槽来了个管理层,公司开始变味了
Nubility 发表于 2024-6-15 17:35
感觉是老板飘了,要强调管理了
回归纸质文档签字、提前申请丧假,这种操作看起来也不像是当下用来实现高效管理的手段啊
-
回复了主题帖:
黑心公司跳槽来了个管理层,公司开始变味了
看你这么说也是不像是优化制度提升效率,而是让公司有正常理由和借口克扣福利,节省支出,真像楼主说的伪君子的做法
- 2024-06-11
-
回复了主题帖:
快充协议的充电头用的TYPEC输出线和直接用没有带快充协议的充电头,TYPEC线作为不...
如果是在快充头上可以跑到5A的线材本身是可以工作在5A的电流的,根本原因还是取决于充电头和受电端的情况
- 2024-06-06
-
加入了学习《PI PowiGaN 系列视频》,观看 谈谈GaN(2)-可靠且耐用
-
加入了学习《PI PowiGaN 系列视频》,观看 氮化镓器件的开关特性
- 2024-06-05
-
回复了主题帖:
最近很火的麦当劳对讲机拆解,看看内部结构究竟啥样?
跟之前的肯得基联名款可达鸭一样的套路?搭上肯得基的品牌,瞬间就爆了,所以接下来的创新就是要合作共赢,挖掘更多应用场景
-
回复了主题帖:
串口屏电源端干扰解决
应该先判断干扰是怎么进来的,是由电源耦合进来的话一般加大电容降低12V波动的影响,从楼主贴的图片来看,电压波动达到了1.48V,跌落的时间也很长,这个实在是太大了一些,该去看一下使用的12V电源在射频工作的时候输出功率是否足够,如果是射频的传导辐射干扰,一般是尖峰脉冲干扰,很难达到如此大而且持久的电压跌落
- 2024-05-25
-
回复了主题帖:
重磅!曾毓群1号文件曝光!
国外还有一大片市场,走出国门是必须的,占据先机
- 2024-05-24
-
回复了主题帖:
请帮忙看一下,图中662X是什么器件
这个封装形式一般就是LDO电源芯片