stm32 液晶显示时间个位补零
时间: 2023-04-09 15:03:52 浏览: 101
可以使用以下代码实现:
```c
#include "stm32f10x.h"
#include "stdio.h"
void delay_ms(uint32_t ms)
{
uint32_t i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 2000; j++);
}
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while (1)
{
uint32_t time = RTC_GetCounter();
uint32_t sec = time % 60;
uint32_t min = (time / 60) % 60;
uint32_t hour = (time / 3600) % 24;
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
delay_ms(500);
if (hour < 10)
{
GPIO_SetBits(GPIOB, GPIO_Pin_0);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_0);
delay_ms(500);
}
GPIO_SetBits(GPIOB, GPIO_Pin_1);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_1);
delay_ms(500);
if (min < 10)
{
GPIO_SetBits(GPIOB, GPIO_Pin_2);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_2);
delay_ms(500);
}
GPIO_SetBits(GPIOB, GPIO_Pin_3);
delay_ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_3);
delay_ms(500);
}
}
```