苏嵌项目
姓名 高瑞 日期 2018.7.26
今日学习任务
主要讲得串口,及外部中断
今日任务完成情况
完成了串口的任务
完成了一个按键和一盏灯的任务
今日开发中出现的问题汇总
难找相关的代码
今日未解决的问题
四盏灯和四个按键的操作
今日开发收获
通过自己翻阅gpio.h文件,自己用里面提供的函数测量按键的状态,了解了按键和灯的相关操作
自我评价
比较难找寄存器相关的代码
#ifndef _BSP_KEY_H
#define _BSP_KEY_H
#include "stm32f4xx.h"
#include "bsp_usart.h"
void Key_Exti_Config (void);
#endif
#include "bsp_led.h"
void GPIO_LED_Config()
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(GPIO_LED_RCC,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_LED_PIN_Blue;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIO_LED_Blue,&GPIO_InitStruct);
}
#include "bsp_key.h"
void Key_Exti_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_Init(GPIOC,&GPIO_InitStructure);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource13);
EXTI_InitStructure.EXTI_Line = EXTI_Line13;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0f;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0f;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line13)==SET)
{
GPIO_ToggleBits(GPIOC,GPIO_Pin_1);
printf("PC13ÖжÏ\n");
EXTI_ClearITPendingBit(EXTI_Line13);
}
}
#include "stm32f4xx.h"
#include "bsp_led.h"
#include "bsp_systick.h"
#include "bsp_usart.h"
#include "bsp_key.h"
void delay(uint32_t t)
{
for(;t!=0;t--)
;
}
int main(void)
{
GPIO_LED_Config();
SysTick_Init();
USART_Config();
Key_Exti_Config();
while(1)
{
printf("\r\n 苏嵌欢迎你 \r\n");
delay(0xfffffff);
}
}