概述
本文使用STM32F10X,软件为Keil uVision5,仿真软件Proteus 8 Professional
实现代码
学习笔记
8个led
电路图
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); //延迟,保持高电平一段时间
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
学习笔记
输入: 上拉输入,下拉输入,浮空输入,模拟输入
输出:通用推挽输出,通用开漏输出,复用推挽输出,复用开漏输出
首先开启GPIO时钟,然后设置GPIO输出模式为推挽输出,接着初始化led
GPIO_ResetBits(GPIOC,GPIO_Pin_0);//PAO=0 ,输出低电平
GPIO_SetBits(GPIOC,GPIO_Pin_0);//PAO=1,输出高电平
设计资源 培训 开发板 精华推荐
- 红外测速模块
- 使用 Infineon Technologies AG 的 BFR740L3RH 的参考设计
- DC1908A-G,具有 LTC2328-16、16 位、1Msps、真正双极低功率、单电源 ADC 的演示板
- 使用 Analog Devices 的 LTC1841 的参考设计
- LT3020IMS8-1.8 100mA、低电压、极低压差线性稳压器的典型应用电路
- LTC3350IUHF 大电流超级电容器充电器和备用电源的典型应用电路
- 5*17全彩点阵(ws2812
- 使用 NXP Semiconductors 的 TDA1514A 的参考设计
- A000067,基于 ATmega2560 8 位 AVR RISC MCU 的 Arduino Mega2560 开发套件平台
- 使用 Analog Devices 的 LTC1596-1CCSW 的参考设计