找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2776|回复: 0
收起左侧

STM32新手的端口配置尝试—点亮D2端口小灯

[复制链接]
ID:494621 发表于 2019-3-20 13:43 | 显示全部楼层 |阅读模式
今日,我学习了如何配置GPIO端口,并让我做一段点亮开发板D2端口小灯的程序。
具体程序如下:
//#define STM32F10X_HD
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
//io口初始化
void GPIO_INITCFG(void)
{
    GPIO_InitTypeDef GPIO_InitVar;
              GPIO_InitVar.GPIO_Pin=GPIO_Pin_2;
GPIO_InitVar.GPIO_Mode=GPIO_Mode_Out_PP;
              GPIO_InitVar.GPIO_Speed=GPIO_Speed_50MHz;
              GPIO_Init(GPIOD,&GPIO_InitVar);
              }
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_INITCFG();
  while(1)//D2light
  {
                            GPIO_SetBits(GPIOD,GPIO_Pin_2);//置一亮
  }
              return 0;
}
程序的具体含义为:
  • 配置D2端口
void GPIO_INITCFG(void)
{
    GPIO_InitTypeDef GPIO_InitVar;
              GPIO_InitVar.GPIO_Pin=GPIO_Pin_2;
GPIO_InitVar.GPIO_Mode=GPIO_Mode_Out_PP;
              GPIO_InitVar.GPIO_Speed=GPIO_Speed_50MHz;
              GPIO_Init(GPIOD,&GPIO_InitVar);
              }
这段程序是一个结构体,功能是配置GPIO的D2端口,以50MHz的速度进行推挽输出。
  • 点亮小灯主程序
  • RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
这句程序控制D端口的时钟,使其能够由STM32芯片控制。
2、GPIO_INITCFG();
这句程序作用是声明结构体,使其有意义。注:只有在主程序中声明的函数,才能正常运行。
3、 while(1)//D2light
  {
                            GPIO_SetBits(GPIOD,GPIO_Pin_2);//置一亮
  }
这段程序执行点亮D2端口小灯的操作。
将程序编译后下载,结果如下:
在编译过程中,遇到了如下错误:
Error: L6218E: Undefined symbol assert_param (referred from stm32f10x_gpio.o).
解决方法为:在Options->C/C++->preprocessor Symboles有Define:项中输入USE_STDPERIPH_DRIVER,重新编译链接,无警告无错误。如图:

具体图片和过程中遇到的难点可看附件!!!


完整的Word格式文档51黑下载地址:
点亮开发板D2端口的小灯.doc (2.83 MB, 下载次数: 7)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表