最近用到了TM1652这个芯片,它是天微的一款LED(发光二极管、数码管、点阵屏)驱动控制专用芯片。之前用过天微的TM1638,除了能驱动LED,还支持按键状态检测,简直是节省IO的利器。TM1638的通信接口是一个类似SPI的接口,需要三个IO。
而这次的TM1652因为功能相对少一些(只能驱动LED,不能检测按键),所以用到的IO也少了,只需要一个IO。功能特点如下:
这里关注几个地方:
- 典型工作电压,手册里写的是5V,但是3.3V我试了,没问题。
- 只支持共阴极数码管,不支持共阳极数码管。
- 显示模式,支持7段X6位,或者8段X5位
- 使用类似UART串口的协议进行通信,波特率固定19200。
别的就没什么了。我这里的电路如下,使用了一个3位的共阴极数码管,同时需要小数点,所以显示模式我需要8段的模式:
PCB布局的时候,那两个电容尽量离芯片近一些。
接下来是程序方面,我使用的单片机是STM32G030F6P6,串口2,使用软件STM32CUBE进行了UART2的基本配置,手册中对串口工作模式要求如