[应用相关] STM32单片机GPIO使用(库函数版)

[复制链接]
1239|2
 楼主| IversonCar 发表于 2016-5-25 17:29 | 显示全部楼层 |阅读模式
STM32单片机体积小,功能强,现在越来越多的人学习,小编也上一个STM32的教程,当然,入门教程肯定是如何点亮LED。

小编使用的开发版是一个很小巧的开发板,避免广告只嫌就不说从哪儿买的,喜欢的自行购买。
电路图如下:

可见D2,D3,D4是低电平驱动的,由于STM32是3.3v电压,所以这样是可以用的,只要电阻大点,就会防止灌电流太大。由于是低电平驱动,那么我们给STM32的PC1,PC3,PC13给低电平LED就会亮,这是基本原理,接下来我们程序实现。
  1. #include<stm32f10x.h>

  2. void delay(unsigned long n)
  3. {
  4. unsigned long t;
  5.         for(;n>0;n--)
  6.                 for(t=1000;t>0;t--)
  7.                         ;
  8. }

  9. int main(){

  10.                 //定义一个GPIO初始化结构体,要在RCC使能之前定义,否则会报错
  11.         GPIO_InitTypeDef GPIO_InitStruct,GPIO_InitStruct2;

  12.         //初始化RCC并使能
  13.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

  14.         //设置要初始化的GPIO的管脚
  15.         GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_13;

  16.         //设置要初始化的GPIO的速度
  17.         GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

  18.         //设置要初始化的GPIO的模式
  19.         GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_OD;

  20.         //调用初始化函数,传入参数为GPIO初始化结构体的地址
  21.         GPIO_Init(GPIOC, &GPIO_InitStruct);


  22.         //在循环中给GPIO_Pin_1不断置位复位,也就是给高低电平,可以用来点亮对应管脚的led
  23.         while(1){
  24.                                 //GPIO管脚置位函数,第一个参数为那个GPIO口,第二个为GPIO口的第几个引脚
  25.                                 GPIO_SetBits(GPIOC, GPIO_Pin_1);
  26.                                 GPIO_ResetBits(GPIOC, GPIO_Pin_3);
  27.                                 delay(10);
  28.                                 //GPIO管脚复位函数,第一个参数为那个GPIO口,第二个为GPIO口的第几个引脚
  29.                                 GPIO_ResetBits(GPIOC, GPIO_Pin_1);      
  30.                                 GPIO_SetBits(GPIOC, GPIO_Pin_3);
  31.                                 delay(10);
  32.         }
  33.         return 0;
  34. }
以上代码是在Keil5.17下实现的,由于新版的Keil提供了Pack的功能,也就是我们之前手动添加的其他相关库文件,现在直接可以通过勾选去实现添加,见下图:点击图中花圈的1,就可以打开添加各种外设头文件的窗口。


然后选择需要的功能,勾选即可。
643757107 发表于 2016-5-25 20:55 | 显示全部楼层
自从有了cubeMX,再也不担心配置错误了。
309030106 发表于 2016-5-27 21:57 | 显示全部楼层
用库函数确实方便很多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

344

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部