本项目介绍如何使用STM32微控制器驱动TM1637芯片控制四位数码管进行数字和自定义字符显示,适用于电子时钟、测量仪器等应用。
在主函数`int main(void)`里执行了一系列初始化操作后进入一个无限循环:
1. 首先调用 `delay_init()` 函数进行延时功能的初始化。
2. 使用 `NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);` 设置了中断管理器 NVIC 的优先级分组,具体设置为 2位抢占优先级和 2位响应优先级。
3. 调用 `uart_init(115200)` 函数初始化串口通信至波特率为115200bps。
4. 执行了 `LED_Init()` 来配置与 LED 相连的硬件接口。
5. 紧接着调用了 `TM1637_Init();` 初始化 TM1637 显示模块。
在循环中,每执行一次以下操作:
- 延时 1 毫秒通过函数 `delay_ms(1);`
- 执行显示功能:首先使用 `TM1637_NixieTubeDisplay()` 更新所有位的数值。
- 分别设置四位数管显示器上每一个位置要显示的具体数字:
- 第一个位置(从左到右)显示 1,通过调用`TM1637_NixieTubeDisplayChar(1,0);`
- 第二个位置显示 2, 由 `TM1637_NixieTubeDisplayChar(2,1);` 实现
- 第三个位置显示 3,使用了函数 `TM1637_NixieTubeDisplayChar(3,2);`
- 最后一个(即第四个)位置则被设置为显示数字 “4”,通过调用 `TM1637_NixieTubeDisplayChar(4,3);` 完成。
以上描述的程序逻辑用于控制硬件设备,如LED和数显管显示器,并且以每毫秒一次的速度更新显示内容。