stm32f103c4点亮数码管配置
时间: 2023-07-11 17:44:37 浏览: 114
首先,需要连接数码管到STM32F103C4的IO口上。然后,可以使用以下代码来点亮数码管:
```
#include "stm32f10x.h"
void delay_ms(uint32_t ms)
{
uint32_t i;
for(i=0;i<ms*1000;i++);
}
int main(void)
{
uint8_t digit[10] = {
0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f
};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
while(1)
{
for(int i=0;i<10;i++)
{
for(int j=0;j<8;j++)
{
GPIO_WriteBit(GPIOA, 1<<j, (digit[i]>>j) & 0x01);
}
delay_ms(1000);
}
}
}
```
这里使用了GPIOA的0~7口来控制数码管的8个LED灯,每个LED灯对应一个二进制位。在循环中,依次通过GPIO_WriteBit函数点亮数码管的每个数字。为了让数字看起来更清晰,使用了delay_ms函数来控制每次显示的时间间隔。
阅读全文