stm32F103vct6控制共阳数码管代码
时间: 2024-09-18 15:09:19 浏览: 39
STM32F103VCT6微控制器通常用于驱动共阳极数码管,这类数字显示器需要反相信号来驱动公共端。以下是使用HAL库编写的一个简化的示例代码片段:
```c
#include "stm32f1xx_hal.h"
#include "stm32f1xx_hal_gpio.h"
// 定义数码管位寻址
#define DIGIT0 GPIO_PIN_0 // 数码管的第一位
#define DIGIT1 GPIO_PIN_1
... (依此类推到DIGIT7)
// 初始化GPIO
void init_GPIO(void) {
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE(); // 驱动GPIOA
GPIO_InitStruct.Pin = DIGIT0 | ... | DIGIT7; // 所有数码管的段选线
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // Push-Pull模式
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 低速
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
// 显示数字0-9的函数
void displayDigit(uint8_t digit) {
uint8_t bitMask = 0x01 << (digit % 8); // 计算对应位的掩码
GPIO_SetBits(GPIOA, bitMask); // 设置对应位置为高
HAL_Delay(500); // 等待一段时间让显示稳定
GPIO_ResetBits(GPIOA, bitMask); // 清除显示
}
int main(void) {
init_GPIO();
for(int i = 0; i < 10; i++) {
displayDigit(i);
}
while (1); // 程序无限循环
}
阅读全文