• 嵌入式02 STM32 实验04跑马灯


    开学STM32

    跑马灯的实验主要就是了解GPIO口的配置及使用,我这里是使用库函数进行编程,主要需要设置以下两方面:

      1、使能需要使用的IO口的时钟,一共有A、B、C、D、E、F、G七组IO口

      2、初始化IO口(设置IO口的端口号(有GPIO_Pin_0 ~ GPIO_Pin_15,共16个IO端口)、设置IO口的输出速度、设置IO口的工作模式)

    代码如下

     1 //端口初始化
     2 #include "led.h"
     3 #include "stm32f10x.h"
     4 
     5 void LED_Init(void)
     6 {
     7     GPIO_InitTypeDef GPIO_KST;
     8     
     9     
    10     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);   //使能端口B和E
    11     
    12     GPIO_KST.GPIO_Mode = GPIO_Mode_Out_PP;         //设置端口模式为推挽输出
    13     GPIO_KST.GPIO_Pin = GPIO_Pin_5;                //选择端口5
    14     GPIO_KST.GPIO_Speed = GPIO_Speed_2MHz;         //IO口的速度设置为2MHz
    15     GPIO_Init(GPIOB, &GPIO_KST);                   //初始化GPIOB.5
    16     
    17     
    18     GPIO_KST.GPIO_Mode = GPIO_Mode_Out_PP;         //设置端口模式为推挽输出
    19     GPIO_KST.GPIO_Pin = GPIO_Pin_5;                //选择端口5
    20     GPIO_KST.GPIO_Speed = GPIO_Speed_2MHz;         //IO口的速度设置为2MHz
    21     GPIO_Init(GPIOE, &GPIO_KST);                   //初始化GPIOE.5
    22 }

    主程序

     1 //主程序
     2 #include "sys.h"
     3 #include "delay.h"
     4 #include "led.h"
     5 
     6 int main(void)
     7 {
     8     delay_init();    //延时初始化
     9     LED_Init();      //LED初始化
    10     while(1)
    11     {
    12         GPIO_ResetBits(GPIOE, GPIO_Pin_5);        //关闭PE5端口的LED
    13         GPIO_SetBits(GPIOB, GPIO_Pin_5);        //关闭PB5端口的LED
    14         delay_ms(500);                         //延时100ms
    15         GPIO_SetBits(GPIOE, GPIO_Pin_5);
    16         GPIO_ResetBits(GPIOB, GPIO_Pin_5);        //打开PB5端口的LED
    17         delay_ms(500);                         //延时100ms
    18     }
    19         
    20 }

  • 相关阅读:
    jquery
    gulp 入门
    bower 教程
    webstrom管理git
    修改页面浏览器自动刷新
    兼容IE低版本
    js之触屏事件篇
    js之日期篇
    设置浏览器默认样式
    Listview四种视图VIEW
  • 原文地址:https://www.cnblogs.com/ksht-wdyx/p/11594531.html
Copyright © 2020-2023  润新知