- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 TMP102温度传感器(二进制补码和原码相互转换)
以12位有符号数据为例,在TMP102中,bit11为符号位,有效数据只有11位[10:0]。而在32位单片机中,例如STM32中,有符号数据的符号位为bit31,有效数据为[30:0]。那么同样的负数,在不同系统中存储的编码是不同的。例如,在32位系统中,-400=0xFFFF_FE70。而16位系统中,-400=0xFE70,12位系统-400=0xE70。简单来说,整形int在不同的系统的寻址空间长度不一样。还有很多其他的芯片,寄存器内部也是保存着二进制补码,对于负数的读取也可以使用这种函数。
2024-08-03 14:15:27
750
原创 VS code报错“No such file”,配置tasks.json
找了很久,终于找到一个同病相怜的患者,原来vscode只是一个文档编辑器,c_cpp_properties.json里面的配置路径,只是用来支持编辑器跳转的,而编译器的配置在`tasks.json`里面。好吧,使用"-I"后缀(其实就是gcc -I),添加了文件夹路径,但是居然不能搜索子文件夹。哦豁,找不到文件路径。基于MDK的经验,我看了一下,UI和**json文件**(注意这个)里面都有写文件路径,应该不会错呀。先记录一下临时解决办法,再次吐槽一下,网上的资料太简陋了,大部分都是基础问题的解决办法。
2023-08-19 15:49:24
535
原创 Allegro导出元器件pad坐标和网络(附带ODB++插件下载)
当然有时候如果客户只给了gerber,从gerber里面导出坐标就不太现实了,除非给出的gerber是类似ODB++的格式,含有网表和坐标。芯片测试行业,有时候需要将DUT的芯片封装导出,对于有些引脚排列不规则的芯片,使用AD的smart insert功能,批量导入pad的坐标,并自动放置,将会带来极大的便捷。如果使用allegro,只能手动一个一个去放置pad,如果有数百个pad,十分耗费时间。另外,由于TP点往往只有一个pad,因此对于TP点的坐标,在SMT坐标文件里面也可获取到。
2022-09-14 10:12:58
6397
原创 Lua将浮点型转成16进制
参考文档:【1】https://blog.csdn.net/weixin_30597089/article/details/113040138?spm=1001.2014.3001.5506【2】https://blog.csdn.net/weixin_43142607/article/details/123376774 对于C/C++就很简单了,直接定义一个联合体即可将浮点转成十六进制,需要注意的是,在STM32上面是使用小端模式,因此存储是先存高位。例如0x12345678,应该依次存储0x78
2022-03-31 11:34:45
5463
原创 基于STM32 HAL库的自定义USB HID设备通信
最近有个项目需要用到STM32的高速通信,准备调试一下STM32的USB功能,但是发现F103C8T6只有全速USB,因此作为HID设备一帧只能发送64字节,最小间隔是1ms,显然这个是很慢不能满足要求了,高速USB还是只能外接高速USB PHY。这里只记录一下调试过程不说原理了,USB协议十分复杂,学习的书籍还是参考《圈圈教你玩USB》比较合适。1.代码生成 方便起见直接用CubeMX生成大部分的代码,然后在上面修改即可,步骤参见如下:https://www.cnblogs.com/untitl
2022-02-07 17:59:13
11608
1
原创 Keil添加printf输出串口
参考官方文档:https://www.keil.com/support/man/docs/jlink/jlink_trace_itm_viewer.htm 关于ITM的介绍参见:https://blog.csdn.net/hanchaoman/article/details/102494914 Debug (printf) Viewer可以通过ITM0输出printf内容,通过以下步骤可以打开显示串口输出。1.将ITM端口寄存器定义添加到源代码中。同时在源代码中添加一个写入ITM Port 0寄.
2022-01-06 10:44:59
3495
2
原创 【电容电压不能突变的理解】
电路基础知识:电容作为无缘储能元件,其两端的电压不能突变;同样电感作为无源储能元件,其流过的电流不能突变。其根本原因是能量不能变,对于电容来说,能量就是存储的电场,电场的建立是需要时间的。 理论上,根据电容电流的公式i(t) = C*du/dt,其中C是电容的固有属性,可以认为是一个常量。如果电容电压需要突变,那么dU需要无穷大,进而得出需要无穷大的电流才可以做到,这显然是不可能的。电感电流也是类似的推导过程。 搭建如下图所示的原理图进行仿真。 i
2021-01-31 16:12:08
2198
2
转载 [转载]基于FPGA的IIR滤波器
原地址:http://www.cnblogs.com/fydeblog/p/6748998.html作者: FANG_YANG1.说明写了那么多数字图像处理的,再写点其他的吧,今天写点FPGA的东西,是之前EDA做的综合大实验,拿出来和大家分享分享!先说一下,此篇文章是基于你有IIR滤波器的原理和FPGA语言(也就是Verilog HDL)基础上的!至于IIR滤波器的原理和Verilog ...
2020-03-20 14:58:50
544
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人