导语

注意看自己选择的芯片型号,我这里选择的是stm32F103C6T6,同时Proteus的版本应该下载尽量新的版本,版本过低可能没有stm32系列的芯片。接下来是具体配置和实现过程。

  1. 配置GPIO

我这里选择的是GPIOA,配置GPIO首先需要使能时钟,让它工作,在初始化即可下面是配置代码

void Led_liushui_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All ;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStructure);
}

在配置好我们的GPIO后,我们可以阅读GPIO的库函数,找到我们所需要的功能函数,来进行GPIO的基本使用,我们进行流水灯可以借助下面这个函数,它可以同时对你所选择的GPIO进行位操作,实现流水灯效果。

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

我操作它的低八位来进行流水灯的展示。

void Led_Liushui_state(void)
{
        GPIO_Write (GPIOA,~0x0001);
        Delay_ms(5000);
        GPIO_Write (GPIOA,~0x0002);
        Delay_ms(5000);
        GPIO_Write (GPIOA,~0x0004);
        Delay_ms(5000);
        GPIO_Write (GPIOA,~0x0008);
        Delay_ms(500);
        GPIO_Write (GPIOA,~0x0010);
        Delay_ms(500);
        GPIO_Write (GPIOA,~0x0020);
        Delay_ms(500);
        GPIO_Write (GPIOA,~0x0040);
        Delay_ms(500);
        GPIO_Write (GPIOA,~0x0080);
        Delay_ms(500);
}

2.Proteus

我们打开软件,进行新建原理图即可,然后我们点击下图中画红圈的元器件模式,添加和选择我们所需要的元器件,画绿圈为终端模式,里面会有一些常用的电源或者地等等。

添加好元器件后我们进行连线,我一般采用端子连线,这样比较美观和方便。连线如下,proteus会帮我们最小系统需要的电路自动配置好,所以我们只需要连接自己想要实现的电路即可,上边那个Led是用来看仿真有没有跑起来的。

用stm系列需要注意配置一下电源设置,点击配置供电网,点开后看左边有未连接的,到增加到右边,上面有GND和VCC选择,选择VCC改为3.3V,stm32的工作电压。

3.添加keil程序

我们双击单片机会出现如下界面,我们点击图中的文件夹,去到我们存放hex文件的地方,添加进来,选择晶振8MHZ,然后开始仿真,就可以看到仿真现象了。

到此,我们的流水灯新手教程就结束了。

更多推荐