STM32最简单的外设莫过于IO口的高低电平控制了, Proteus仿真STM32F103R6的跑马灯程序。
一、原理图

二、跑马灯C程序
// 粗略延时函数
static void delay(unsigned int n)
{
for(unsigned int i=0; i<n; i++)
{
for(unsigned int j=0; j<1024; j++)
{
for(unsigned int k=0; k<1024; k++)
{
__asm("nop");
}
}
}
}
int main(void)
{
// 使能GPIOB端口时钟
// RCC起始地址:0X40021000
// RCC_APB2ENR偏移地址:0X18
*(unsigned int *)(0X40021000 + 0X18) |= (1 << 3);
// 配置IO口为输出模式
// CNFy[1:0]: 00 - 通用推挽输出模式
// MODEy[1:0]:01 - 输出模式,最大速度10MHz
for(unsigned int i=0; i<8; i++)
{
// GPIOB起始地址:0X40010C00
// GPIOx_CRL偏移地址:0X00
*(unsigned int *)(0X40010C00 + 0X00) |= (1 << (4*i+0));
*(unsigned int *)(0X40010C00 + 0X00) &= ~(1 << (4*i+1));
*(unsigned int

本文通过Proteus仿真展示了如何使用STM32F103R6实现跑马灯效果。程序中包含了GPIO口的配置和延时函数,通过设置GPIO口的高低电平交替控制LED灯的亮灭,实现跑马灯的循环滚动效果。
最低0.47元/天 解锁文章
2366





