摘要:
我大拇指般大小。STM32F103C8T6,64K Flash,20K RAM,m3的核。十元,应该是价格极限了吧。 通过USB供电(5V),也可以排针3.3V供电。可惜没有引出5V排针。USB口可以供电和USB通讯,没有USB串口,不能下载程序和调试。下载、调试用ST-Link(通过SW接口)。设 阅读全文
摘要:
Arduino板子上集成了USB虚拟串口,由此在PC和AVR之间建立起了串口通讯的渠道。Arduino出厂默认在Flash内置了一个bootloader程序,在Arduino启动的头几秒内,bootloader会检查从串口来的数据,如果这些数据能解析成特定协议的消息格式,bootloader进入IS 阅读全文
摘要:
概括起来说,Eclipse CDT,Toolchain用AVR Libc,以及:a, AVR Eclipse Plugin插件;b, make, rm等shell命令行工具;c, AVRDude,用来下载程序到单片机。 这篇随笔分2部分,第一部分是软件安装和设置步骤,第二部分建立一个demo工程,并 阅读全文
摘要:
RGB颜色传感器。传感器芯片不知道是TCS230,或是TCS3200。二者pinout及电气性能一样。左边的模块有8个引脚,LED常亮。S0, S1 默认上拉为高电平,/OE下拉低电平。S2, S3, OUT 三个引脚供单片机接口。如下: 照片中右边的模块有10个引脚,原理与8pin相同,只是多了一 阅读全文
摘要:
超声测距模块 HC-SR04P。工作电压3-5V,有效距离2-400cm,分辨率1mm。注意型号末尾的“P”:有另一个外观、接口、工作方式一样的型号 HC-SR04,但工作电压为5V。我这个模块 PCB正面印刷的是HC-SR04,反面印刷 HC-SR04P: 有4个引脚,VCC/GND供电,TRIG 阅读全文
摘要:
蜂鸣器。左边的是有源蜂鸣器,右边的无源。从外观上看,无源蜂鸣器略矮(约1mm)。有源蜂鸣器触发就会发声,发声频率固定。无源蜂鸣器要用方波驱动,方波频率即为其发声频率: 没有像样的规格书,频率范围未知。网店商品描述中提到一句2k-5k,that's all。一些关于声音频率的数据: 人耳的敏感范围约为 阅读全文
摘要:
这是最简单的GPIO接口模块之一。三个引脚,VCC/GND/OUT。声称支持3.3-5V,检测距离2-30cm。输出仅2个状态:有障碍或无障碍。当检测到障碍物时OUT脚输出低电平。上面有个电位器,可用以调整检测距离,例如,我试着把它调整到约3cm,这时完全检测不到黑色表面。这样就可以用来检测黑白线, 阅读全文
摘要:
在高级语言中,I/O 流输入(input)操作一般都要求指定要读取的数据的最大长度(字节数)。当接收到至少1字节、最多所指定的字节数时,函数返回。 STM32 串口接收数据时,HAL API 要求指定数据长度。但无论轮询、中断或是DMA方式,都必须完整地接收到这么多字节,程序流程才继续。如何接收变长 阅读全文
摘要:
STM32串口通讯有3种形式:轮询(阻塞式)、中断、DMA。我不知道中断方式的串口通讯有什么适合的应用场景:每接收/发送一个字节,就要发生一次中断,这对CPU反而是一种浪费。使用Cube HAL,轮询式的串口通讯最简单了,发送和接收数据分别有一个函数: Timeout 参数给 HAL_MAX_DEL 阅读全文
摘要:
STM32的“中断”机制很复杂,看了PM(Cortex-m4)和RM,对它只了解了一个大概。首先,与“中断”相关的术语就有 exception, interrupt, event 三个。Cortex-m4核中包含一个NVIC控制器,用于处理 exception。而 interrupt 是属于 exc 阅读全文