一、添加我们创建的文件路径
二、主函数展示部分
/********************************** (C) COPYRIGHT *******************************
* File Name : main.c
* Author : WCH
* Version : V1.0.0
* Date : 2021/06/06
* Description : Main program body.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
/*
*@Note
USART Print debugging routine:
USART1_Tx(PA9).
This example demonstrates using USART1(PA9) as a print debug port output.
*/
#include "debug.h"
#include "../My_File/driver.h" //使用相对路径方法
/* Global typedef */
/* Global define */
/* Global Variable */
/*********************************************************************
* @fn main
*
* @brief Main program.
*
* @return none
*/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断向量组设置的是2
SystemCoreClockUpdate();
Delay_Init(); //系统延时的初始化函数
USART_Printf_Init(115200); //串口的初始化
printf("SystemClk:%d\r\n",SystemCoreClock);
printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
printf("This is printf example\r\n"); //打印这些信息
Driver_Init();
while(1)
{
Driver_Loop();
}
}
这样的话,我们更改就可以不用动单片机它本身的文件,只需更改我们自定义的这些文件,提高了它的可移植性
三、driver函数控制部分
#include "debug.h"
#include "driver.h"
void Driver_Init()
{
GPIO_InitTypeDef GPIO_InitStructure = {0};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
}
void Driver_Loop()
{
GPIO_WriteBit(GPIOE, GPIO_Pin_1, !GPIO_ReadOutputDataBit(GPIOE, GPIO_Pin_1));
Delay_Ms(500);
}
!取反符号
1.定义了一个名为"GPIO_InitStructure"的结构体变量,并将其初始化为0。这个结构体用于配置GPIO引脚的参数。
2.调用了"RCC_APB2PeriphClockCmd()"函数,启用了GPIOE时钟。这是为了确保GPIOE引脚能够正常工作。
3.设置GPIO_InitStructure结构体的参数
"GPIO_Mode"设置为"GPIO_Mode_Out_PP",表示使用推挽输出模式。在这种模式下,引脚可以输出高电平或低电平。
"GPIO_Pin"设置为"GPIO_Pin_1",表示要配置的是GPIOE的第1个引脚。
"GPIO_Speed"设置为"GPIO_Speed_50MHz",表示引脚的输出速度为50MHz。
4.调用了"GPIO_Init()"函数,将配置好的参数应用到GPIOE引脚上。
5.调用了"GPIO_WriteBit()"函数,将GPIOE的第1个引脚的状态设置为其当前状态的相反值。具体来说,如果当前状态是高电平,则将其设置为低电平;如果当前状态是低电平,则将其设置为高电平。
GPIO_ReadOutputDataBit将引脚的高低电平读取出来,然后进行取反再付给初值,这样循环可以产生LED闪烁的效果
6. 调用了"Delay_Ms()"函数,延迟500毫秒,并在每次切换之间延迟500毫秒。