|
PB8-PB15分别控制一个LED灯,循环显示形成流水灯- /**
- ******************************************************************************
- * @file Main/main.c
- * @author Foron
- * @version V1.0
- * @date 2016.08.14
- * @brief 主函数文件
- */
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f10x.h"
- /* define 宏定义------------------------------------------------------------*/
- #define LED_1_ON GPIO_SetBits(GPIOB,GPIO_Pin_8)
- #define LED_1_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_8)
- #define LED_2_ON GPIO_SetBits(GPIOB,GPIO_Pin_9)
- #define LED_2_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_9)
- #define LED_3_ON GPIO_SetBits(GPIOB,GPIO_Pin_10)
- #define LED_3_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_10)
- #define LED_4_ON GPIO_SetBits(GPIOB,GPIO_Pin_11)
- #define LED_4_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_11)
- #define LED_5_ON GPIO_SetBits(GPIOB,GPIO_Pin_12)
- #define LED_5_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_12)
- #define LED_6_ON GPIO_SetBits(GPIOB,GPIO_Pin_13)
- #define LED_6_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_13)
- #define LED_7_ON GPIO_SetBits(GPIOB,GPIO_Pin_14)
- #define LED_7_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_14)
- #define LED_8_ON GPIO_SetBits(GPIOB,GPIO_Pin_15)
- #define LED_8_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_15)
- /**
- * @brief 延时函数
- * @param val:值越大 延时越长
- * @retval 无
- */
- void delay(int time)
- {
- int i;
- for(;time>0;time--)
- for(i=1000;i>0;i--);
- }
- /**
- * @brief LED初始化函数
- * @param val:值越大 延时越长
- * @retval 无
- */
- void LED_Init(void)
- {
- /* 定义一个GPIO_InitTypeDef类型的结构体 */
- GPIO_InitTypeDef GPIO_InitStructure;
- /* 开启GPIOB、GPIOB和GPIOE的外设时钟 */
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
- /* 设置引脚模式为通用推挽输出 */
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- /* 设置引脚速率为50MHz */
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
- /* 调用库函数,初始化GPIOB8引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
- /* 调用库函数,初始化GPIOB9引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- /* 调用库函数,初始化GPIOB10引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
- /* 调用库函数,初始化GPIOB11引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
- /* 调用库函数,初始化GPIOB12引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
- /* 调用库函数,初始化GPIOB13引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
- /* 调用库函数,初始化GPIOB14引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* 选择要控制的GPIOB引脚 */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
- /* 调用库函数,初始化GPIOB15引脚 */
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /* GPIOB5输出低电平,关闭LED1 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_8);
- /* GPIOB5输出低电平,关闭LED2 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_9);
- /* GPIOB5输出低电平,关闭LED3 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_10);
- /* GPIOB5输出低电平,关闭LED4 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_11);
- /* GPIOB5输出低电平,关闭LED5 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_12);
- /* GPIOB5输出低电平,关闭LED6 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_13);
- /* GPIOB5输出低电平,关闭LED7 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_14);
- /* GPIOB5输出低电平,关闭LED8 */
- GPIO_ResetBits(GPIOB, GPIO_Pin_15);
-
-
- }
- /**
- * @brief 主函数
- * @param 无
- * @retval 无
- */
- int main(void)
- {
- LED_Init();
- while(1)
- {
- LED_1_ON;
- delay(10000);
- LED_1_OFF;
-
- LED_2_ON;
- delay(10000);
- LED_2_OFF;
-
- LED_3_ON;
- delay(10000);
- LED_3_OFF;
-
- LED_4_ON;
- delay(10000);
- LED_4_OFF;
-
- LED_5_ON;
- delay(10000);
- LED_5_OFF;
-
- LED_6_ON;
- delay(10000);
- LED_6_OFF;
-
- LED_7_ON;
- delay(10000);
- LED_7_OFF;
-
- LED_8_ON;
- delay(10000);
- LED_8_OFF;
- delay(10000);
- // GPIOA->BRR |=(1<<5)|(1<<6);
- }
- }
复制代码
|
评分
-
查看全部评分
|