Hui-Shao's Blog

Just do it...

近期在编写 MAX30102 的驱动,引用了 Github 上 MAX30102_for_STM32_HAL 这个开源项目的代码。

按照项目说明,只需要自定义一个 max30102_plot() 函数,即可实现传感器读取后的回调调用。但博主实际编写程序后,却发现自定义的回调函数并没有被调用成功。

经过排查,博主发现,这一问题是由于开源代码中 __weak 关键字使用不当导致,故在此分享一下正确使用方式。

阅读全文 »

近期在使用 STM32H750XBH6 进行一些开发工作,但在使用 CubeMX 配置时钟树时,总是无法将主频设定为 400MHz 以上,报错提示:Frequency searched for is out of range

经过一番摸索后,博主终于找到解决方案,故做此记录。

阅读全文 »

Vivado 自带的编辑器功能非常有限,只有一些简单的代码高亮功能,极大降低了开发者的幸福感。

如果用上巨硬开发的 VS Code ,配合插件,能很好地解决问题。在该神器的加持下,能获取“代码高亮”“语法检查”“自动补全”“定义跳转”“Testbench 生成”等技能。

本文简单记录了配置过程,可供参考。

阅读全文 »

这几日,手上刚拿到了个 DIY 定制的 U盘,但由于自己的一些探索(作死)行为,U盘成功的寄了。

在抢救过程中,由于U盘采用的主控与颗粒的组合不太常见,在开卡时小坑无数,劳神费时,故有此篇记录。

阅读全文 »

问题描述

AM(Amplitude Modulation),即幅度调制,常用于无线电载波传输讯息。

其基本原理是使用混频器,将低频的原始信号叠加到高频的载波信号上,使用低频信号对高频信号进行幅度调制,以传递信息。

考虑如下一个频率为 $f_c$ ,幅度为 $A$ 的正弦载波信号:
$$
c\left( t \right) =A\cdot \cos \left( 2\pi f_ct \right)
$$
另有一个调制波形(原始信号):
$$
m\left( t \right) =M\cdot \cos \left( 2\pi f_mt+\phi \right)
$$
其中,$ f_m \ll f_c $, $M$ 是调制幅度,在确保 $M<1$ 的前提下, $1+m(t)$ 恒为正数,能够避免过调制现象产生。

阅读全文 »

前言

理想按键与实际按键对比

抖动如何产生?因为机械固有的物理特性,开关触点在瞬间接触的时候会有力学的回弹,使开关在“通”“断”之间反复横跳,造成 2-10 毫秒内信号不稳定。

在大部分情况下,这种信号抖动持续是没有影响的。但是当一个开关连接到一个足够“快”的电子设备上时,它可以检测到多次抖动并做出响应,那么就会引起问题。

在此,去除抖动的必要性就体现出来了。

阅读全文 »

最近在学数电,遇到了“竞争-冒险”现象。它在数字电路设计过程中常常会给输出带来意外的结果,成为数字电路设计中不得不考虑的一环。

故文章先从概念、分类说起,分析该现象产生的原因,提出判断是否存在“竞争-冒险”现象的方法,最后提供一些解决方案。

阅读全文 »
0%