灵动微MM32F003硬件最小系统 --- GPIO OUTPUT例程解析【2】

自己做的灵动微MM32F003TW样板回来了一个多月了,一直没时间焊接调试。最近手头的项目告一段落,于是把样板焊起,计划根据自己的样板硬件配置修改官方例程,把全部功能跑一边。
一般我们拿到一款新单片机的板子,会首先验证最简单的gpio功能,通过控制gpio,点个led什么的。样板上有两个led,分别接到了MM32F003TW的PB0、PB1,例程实现两个led的交替闪烁。
这个例程很简单,分两个步骤即可完成。

1 初始化PB0、PB1

void GPIO_ConfigInit(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_Clock_Set(GPIOB, ENABLE); //打开GPIOB的时钟
    GPIO_InitStructure.GPIO_Pin  =  GPIO_Pin_0|GPIO_Pin_1; //配置脚位号
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为推挽输出
    GPIO_Init(GPIOB, &GPIO_InitStructure); //将GPIO配置写入寄存器
}

2 交替设置GPIO高低电平输出

int main(void)
{

    GPIO_ConfigInit();
    while(1) {

        GPIO_SetBits( GPIOB,  GPIO_Pin_1); //PB1输出高电平
        GPIO_ResetBits( GPIOB,  GPIO_Pin_0); //PB0输出低电平
        delay(1000000);
        GPIO_ResetBits( GPIOB,  GPIO_Pin_1); //PB1输出低电平
        GPIO_SetBits( GPIOB,  GPIO_Pin_0); //PB0输出高电平
        delay(1000000);
    }
}

官方例程的修正已基本完成,需要程序的同学可以到百度网盘下载。
提取码:0o5i

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。