赞
踩
1.LED灯 长腿是正极,短脚是负极
2.有源蜂鸣器/无源蜂鸣器:有源蜂鸣器(低电平触发)无源蜂鸣器(高电平触发)
3.将user,library,start,system文件夹复制到我们要做的程序文件夹下
4.回到keil。点击三个箱子
5.建立一个新的文件夹,并在文件夹中添加入刚刚在项目文件夹下新建的所有内容
按住Ctrl将后缀是.h或者.c的文件选中并add添加进start文件夹下
library跟user文件夹跟上面一样选择所有文件,并Ctrl+A选择所有文件并添加进两个文件夹中。
6.点击魔术棒
在define栏写下USE_STDPERIPH_DRIVER
7.参考pwlink文档设置debug。
8.点击右键,添加头文件
9.写上主函数
int main(void)
{
while(1)
{
}
}
10.操作stm32GPIO口需要三个步骤
1.使用RCC开启GPIO时钟
点击library,选择rcc.h文件
拉到最下面找到这三个函数
(1)RCC AHB 外设时钟控制
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);
(2)RCC APB外设时钟控制(APB1/APB2)
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
点击右键跳转到.c的函数定义
点击GPIO,h拉到最下面
2.使用GPIO_Init函数初始化GPIO
(1)先写初始化 GPIO_Init(GPIOA, );然后右键跳转定义
(2) 复制结构体类型GPIO_InitTypeDef,然后定义一个结构体GPIO_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
(3)然后复制GPIO_InitStructure加点.引出三个结构体后续名
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
然后右键跳转定义
(4)然后将结构体写入初始化,GPIOA后
GPIO_Init(GPIOA,&GPIO_InitStructure);
选中后按Ctrl+F搜索
3.使用输出或者输入函数控制GPIO口
#include "stm32f10x.h" // Device header
#include "Delay.h"
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
while(1)
{
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
Delay_ms(500);
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
Delay_ms(500);
}
}
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//先写GPIOA,B,C//后写第几号引脚//最后写是高电平还是低电平。reset是低电平,set是高电平,因为电路是灯泡的正极是连接3.3v的点,负极连接stm32端口号引脚,所以置低电平能导通,高电平会熄灭。
delay函数就是延迟函数
警告:如果出现这个就是这句函数GPIO_InitTypeDef GPIO_InitStructure;不支持放在中间
只要将GPIO_InitTypeDef GPIO_InitStructure;放置在最前面就可以解除了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。