学习日志

今日学习任务

今天主要学习了

1.外部中断函数的概述和外部函数常用库函数

2.学习了外部中断的一般配置过程和步骤

今日任务完成情况

今天基本完成老师上课时候演示的闪烁LED灯的程序

学习了外部中断函数的概述和外部函数常用库函数和外部中断的一般配置过程和步骤

学习使用了SysTick:系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器

可以在调用函数SysTick_Config()后通过函数 NVIC_SetPriority()修改优先级。

NVIC_IROChannel:用来设置中断源。

 GPIO_SetBits(GPIOx,GPIO_Pin_x)就可以实现对GPIO
x的pinx位为高电平

今日开发中出现的问题汇总

对于函数库的使用还不是很了解,很多时候不能正确理解函数的功能和对其进行调用

今日未解决问题

今日开发收获

单片机功能的开发仍需建立在熟练的编程能力和算法理解上,在今天的学习中,对单片机不同功能的实现有进一步了解

自我评价

今天在程序编写和调试过程中认识到了自己的众多不足,尤其在程序实现方面还需要更多的努力,还要试着多去了解新接触的单片机的指导书和功能

其他

main.c

#include "stm32f4xx.h"
#include "bsp_led.h"
#include "bsp_systick.h"
#include "bsp_usart.h"

void delay(uint32_t t)
{
       for(;t!=0;t--)
         ;
}

int main(void)
{
      GPIO_LED_Config();
    
      SysTick_Init();
      USART_Config();
      while(1)
        {
     printf("\r\n 苏嵌欢迎您 \r\n");
         delay(0xfffffff);
        }
}

bsp_usart.c

#include "bsp_usart.h"

void USART_Config(void)
{
      GPIO_InitTypeDef  GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;
    
      RCC_AHB1PeriphClockCmd(USART_GPIO_CLK, ENABLE);
      RCC_APB2PeriphClockCmd(USART_CLK,ENABLE);
    
      GPIO_PinAFConfig(USART_GPIO_PORT,USART_TX_PIN,USART_AF);
      GPIO_PinAFConfig(USART_GPIO_PORT,USART_RX_PIN,USART_AF);
    
      GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType =  GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        
        GPIO_Init(USART_GPIO_PORT,&GPIO_InitStructure);
    
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        
        GPIO_Init(USART_GPIO_PORT, &GPIO_InitStructure);
        
        USART_InitStructure.USART_BaudRate = USART_BAUDRATE;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 
    USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    
    USART_Init(USART,&USART_InitStructure);
        
        //NVIC_Configuration();
        
        USART_Cmd(USART,ENABLE);
}

int fputc(int ch, FILE *f)
{
      USART_SendData(USART, (uint8_t)ch);
    
      while(USART_GetFlagStatus(USART, USART_FLAG_TXE)==RESET);
     
      return ch;
}    
 

bsp_usart.h

#ifndef _BSP_USART_H
#define _BSP_USART_H

#include "stm32f4xx.h"
#include <stdio.h>

#define  USART_GPIO_CLK     RCC_AHB1Periph_GPIOA
#define  USART_CLK          RCC_APB2Periph_USART1
#define  USART_GPIO_PORT    GPIOA
#define  USART_TX_PIN       GPIO_PinSource9
#define  USART_RX_PIN       GPIO_PinSource10
#define  USART_AF           GPIO_AF_USART1

#define  USART_BAUDRATE     115200
#define  USART_IRQ          USART1_IRQn
#define  USART_IRQHandler   USART1_IRQHandler  //USART1_IRQHandler
#define  USART              USART1

void USART_Config(void);

#endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值