如何新建一个工程
1.打开工程模板,删除其他不重要的库文件,把main()函数里的内容删除;
不用的外设固件库文件可以删掉,节省编译时间
rcc 时钟使能
usart 串口
复用映射
setbits 设置高电平 resetbits 低电平
2,在工程文件夹里新建一个HARDWARE文件夹,里边放你想写的程序标题(如LED)
3,在工程里添加这个文件夹
4,新建.c 和 .h 文件,然后添加到HARDWARE文件夹下面
5.因为定义了一个.h头文件,我们需要把他加到头文件路径里,
跑马灯硬件连接
因为要输出高低电平,所以采用推挽(上拉)输出(PS:推挽可以输出强高低电平,开漏只能输出强低电平)
程序步骤
.c文件
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个结构体
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//时钟使能
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;// LED的IO口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //输出
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOF, &GPIO_InitStructure); //初始化完成
GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10); //灯是灭的 初始化要给高电平
}
输入 输出 复用 模拟 四种模式
输出类型 推挽 或 开漏
main()函数
int main(void)
{
delay_init(168);//延时函数初始化 根据时钟设置 一秒
LED_Init();//LED初始化
while(1)
{
GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);//拉高同时灭
delay_ms(500);
GPIO_ResetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);拉低同时亮
delay_ms(500);
}