- #include "hc32f10x.h"
- void delay(u16 n);
- void RCC_Configuration(void);
- void GPIO_Configuration(void);
- int main()
- {
- RCC_Configuration(); // 配置系统时钟
- GPIO_Configuration(); // 配置 GPIO
- while (1)
- {
- // 流水灯效果:依次点亮和熄灭 8 个 LED
- for (int i = 0; i < 8; i++)
- {
- GPIO_WriteBit(GPIOB, GPIO_Pin_0 << i, Bit_RESET); // 点亮 LED
- delay(500); // 延时
- GPIO_WriteBit(GPIOB, GPIO_Pin_0 << i, Bit_SET); // 熄灭 LED
- }
- }
- }
- // 简单的延时函数
- void delay(u16 n)
- {
- u16 i, j;
- for (i = 0; i < n; i++)
- for (j = 0; j < n; j++);
- }
- // 配置系统时钟
- void RCC_Configuration(void)
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
- }
- // 配置 GPIO
- void GPIO_Configuration(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- // 配置 GPIOB 的 Pin_0 到 Pin_7 为推挽输出
- 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; // 输出速度 50MHz
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- // 初始化时将所有 LED 熄灭
- GPIO_Write(GPIOB, 0xFF); // 0xFF 表示所有引脚输出高电平(熄灭)
- }
|