电路和电子学大纲见微

理论部分

Read more
如何更改nano的默认字体(How to set nano default font)
在Linux Shell(或PowerShell、cmd)中启动nano,即便更改了字体的默认值(见下图),在重新打开后仍旧会回到系统初始设定,要解决这个问题需要更改注册表,即在注册表中上图所在位置添加CodePage。(参考:https://zhuanlan.zhihu.com/p/265192 ...
Read more
Linux C Programming -- nano editor

nano editor

Read more
stm32f10x通过i2c读写at24c32

注:指南者才有i2c的硬件例程,mini只有软件i2c

看上去野火的例程来源于st官方,很多人对这个bsp库甚至stm32的i2c硬件都存在质疑,我在设计实验的时候没有发现软硬件存在什么大问题,程序上的一些小瑕疵是有,但瑕不掩瑜。同时还有人提出说为什么st把一个简单的通信协议写的这么复杂,其实我觉得单纯的通信部分是不复杂的,最难理解的可能在于实现page对齐部分,这部分对于初学者来讲很不友好,另外注释写的也不是很清晰。实际上对于入门来说,整个程序里面只要用到bytewrite这一个函数就够了。但是好处在于给了我们一种page对齐的算法,我认为这个算法本身的价值是大于i2c通信部分的。若以后换成其他只能按照block进行操作的存储器,该算法就派上用场了。嵌入式系统只是一个载体,算法和专业方向才是核心竞争力。

Read more
How to generate 4 channel PWM at the same time on nucleo -- REMAP

When configuring TIM3 as a PWM generater, CH1-CH4 are PA6, PA7, PB0, PB1.

four GPIO pins for 4 channels

Read more
How to fix "reset and run" failure in MDK

If failed, uncheck the “Enable” checkbox.

Uncheck

Read more
Fritzing's ssleay.dll error

modified adapter

Read more
关于stm32中断的深入理解

stm32的中断资源非常多,只要是外设就有中断,设置起来也很复杂,除了必须要事先配置好NVIC外,用到哪个外设还要专门对该外设再做一次初始化配置。广播操式的配置代码在很多教程里都做了说明,大同小异,但同时也都在罗列代码时回避了(有意或无意的)中断源的一些关键性知识,本文旨在结合8051寄存器编程的先修课程知识解释stm32中罕有人涉及的关于中断向量入口的知识点,同时也设计了一个按键中断的实验,相信比同类大路货实验更能反映stm32中断的本质。

Read more
Modify STM32F10x_StdPeriph_Lib_V3.5.0 to Add GPIO_ToggleBits Fuction

GPIO_ToggleBits

Read more
AHB何以不是起始于0x40018000?

AHB在stm32f10x.h中的定义

Read more