概述
本文使用STM32F10X,软件为Keil uVision5,仿真软件Proteus 8 Professional
8个led亮灭实现代码
实现代码
//8¸öledÈ«ÁÁÈ«Ãð
#include "stm32f10x.h"
int main()
{
GPIO_InitTypeDef star;
//配置开启GPIO时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
//设置GPIO输出模式
//stm32F1提供了4种输出模式(推挽输出、开漏输出 、复用推挽输出 、复用开漏输出)和3种输出速度;一般配置LED采用推挽输出;
star.GPIO_Pin =GPIO_Pin_All;
star.GPIO_Speed =GPIO_Speed_50MHz;设置IO速率
star.GPIO_Mode =GPIO_Mode_Out_PP;//设置推挽输出模式
//初始化
GPIO_SetBits(GPIOB,GPIO_Pin_All);
GPIO_Init(GPIOB,&star);
//第一种方法
GPIO_Write(GPIOB,0xff00);
//第二种方法
while(1)
{
// GPIO_ResetBits(GPIOB,GPIO_Pin_8);
// GPIO_ResetBits(GPIOB,GPIO_Pin_9);
// GPIO_ResetBits(GPIOB,GPIO_Pin_10);
// GPIO_ResetBits(GPIOB,GPIO_Pin_11);
// GPIO_ResetBits(GPIOB,GPIO_Pin_12);
// GPIO_ResetBits(GPIOB,GPIO_Pin_13);
// GPIO_ResetBits(GPIOB,GPIO_Pin_14);
// GPIO_ResetBits(GPIOB,GPIO_Pin_15);
//
}
}
8个led闪烁实现代码
实现代码
#include"stm32f10x.h"
void Delay(unsigned int count)
{
unsigned int i;
for(;count!=0;count--)
{
i=5000;
while(i--);
}
}
int main()
{
GPIO_InitTypeDef strs;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
strs.GPIO_Pin = GPIO_Pin_All;
strs.GPIO_Speed = GPIO_Speed_50MHz;
strs.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&strs);
while(1)
{
GPIO_ResetBits(GPIOB, GPIO_Pin_All);
Delay(100);
GPIO_SetBits(GPIOB,GPIO_Pin_All);
Delay(100);
}
}
音频发生器
电路图
实现代码
#include "stm32f10x.h"
void Delay(unsigned int count) //ÑÓʱº¯Êý
{
unsigned int i;
for(;count!=0;count--)
{
i=5000;
while(i--);
}
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GIPOC时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PC5引脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置PC5为推免输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIOB速度为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化PC5
GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC5输出高电平,LED熄灭
while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_5); //PC5输出低电平
Delay(10); //延迟,保持低电平一段时间
GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC5输出高电平
Delay(10); //延迟,保持高电平一段时间
}
}
学习笔记
输入:上拉输入,下拉输入,浮空输入,模拟输入
输出:通用推挽输出,通用开漏输出,复用推挽输出,复用开漏输出
首先开启GPIO时钟,然后设置GPIO输出模式为推挽输出,接着初始化led
GPIO_ResetBits(GPIOC,GPIO_Pin_0);//PAO=0 ,输出低电平
GPIO_SetBits(GPIOC,GPIO_Pin_0);//PAO=1,输出高电平
上一篇:Keil环境下STM32F4工程创建步骤
下一篇:STM32学习笔记七——LED闪烁的三种控制方法
推荐阅读最新更新时间:2024-11-08 08:50
设计资源 培训 开发板 精华推荐
- MC27561 - TIGER, Development Board 是 IOTEAM 开发的 Tiger 板,是现成的物联网 (IoT) 硬件
- AD9613-210EBZ,用于评估 AD9613 模数转换器的评估板
- LTC3851AEUD-1 高效 3.3V/15A 降压转换器的典型应用电路
- DEVKIT-S12VR64: S12VR64 MCU评估开发板
- LT1021CCN8-5 的典型应用从 5V 电源运行 5V 基准
- [Q]JW5068A核心8A大电流可调降压DCDC
- 用于以太网路由器的 16W、12V 交流转直流单路输出电源
- STM32F103C8T6核心板
- LT1170IT、12V/5A 负至正降压-升压转换器的典型应用
- 用于数码相机的 12-LED 白光 LED 驱动器