一、STM32F103C8 引脚分布

二、LED的共阴、共阳接法

这里应该是七段数码管的接法。

限流电阻选择为470,在Multism中仿真,也需要接入,否则会出现闪烁情况。或者直接更改属性。

三、消除按钮的机械振动

1、键的特性

键盘是由若干独立的键组成,键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动过程 。

2、去抖动的方法

(1)硬件去抖动,主要是通过滤波电路。

(2)软件去抖动,延时函数。

四、按钮控制灯

1、一对一

每一个按键的电路是独立的,占用一条数据线 。这种键盘占用硬件资源多,适合少量按键的情况。

2、矩阵时(利用率提高一倍)

让D0,D1,D2,D3输出为0,

检测D4—D7有一个为0的时候,再检测D0—D3有一个为0,则确定矩阵中哪一个开关可以使用。

五、Keil环境下开发代码

#include "stm32f10x.h"

//最基本的头文件引用
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h" void delay(u32 kk)
{
while(kk--);
} int main(void)
{
u8 led = 0; //led的tag值 //输出端口配置
GPIO_InitTypeDef GPIO_InitStructure; // 声明一个结构体,在这里的思路是通过对一个结构体进行设置,然后再进行引入初始化,个人的观点就是作为构造函数的形参
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//   首先使这个端口开启
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //选取管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //选取模式
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;    //设置高低电平的切换速率
GPIO_Init(GPIOA, &GPIO_InitStructure); // //输入端口的配置
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA, GPIO_Pin_0); //在输入输出这种第一功能下的对位置数的函数方法 while(1)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 1) //判断是否按下去
        {
delay(5000); //延时,消除按下去的抖动
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 1); //为判断松手的死循环
delay(5000); //延时,消除松手的抖动
        //对灯的输出进行异或操作
led = 1 - led;
if(led)
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
else
GPIO_SetBits(GPIOA, GPIO_Pin_0);
}
}
}

电赛菜鸟营培训(一)——STM32F103CB之LED控制的更多相关文章

  1. 电赛菜鸟营培训(四)——STM32F103CB之ADC转换

    一.ADC概念 实现模拟信号转换成数字信号就是这样子= = 二.代码框架 #include "stm32f10x.h" void delay(u32 kk) { while(kk- ...

  2. 电赛菜鸟营培训(三)——STM32F103CB之串口通信

    一.串口通信概念 1.缩写 USART:Universal Synchronous/Asynchronous Receiver/Transmitter 通用同步/异步接收和发送器 2.用处 (1)同步 ...

  3. 电赛菜鸟营培训(二)——STM32F103CB之中断控制

    一.中断的概念 中断可以理解为一个有激励给它就会立马给你响应的一个东东.就是说在你执行main函数的内容时,当有这个触发时便会跳转到这个中断内存,执行这段代码. Attention: 1.中断的用法, ...

  4. 电赛菜鸟营培训(五)——OLED屏幕的使用

    一.取模软件的使用 首先进行设置 然后可以生成显示这个字母的代码,列优先,先按列画8行,然后再继续画下一列.汉字为16*16,字母为8*8,对应生成相应个数的ox代码. 二.STM32烤写OLED # ...

  5. 电赛菜鸟营培训(零)——Keil环境搭建

    一.Keil开发软件安装 1.安装keil软件 2.使用注册机进行破解 将方框内的ID号复制到注册机,然后得到License,放到最底下就可以完成了. 二.Keil工程搭建 表示参考数据手册,在这里建 ...

  6. TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)

    配置 第一步:右击工程,选择Options 第二步:在General Options的Target选项卡里选择对应的器件Device,这里是MSP430G2231 第三步:在Debugger里选择FE ...

  7. 【系列】关于NJUPT电赛自控方向第一次积分赛的总结

    本人是NJUPT电子科学与技术专业大一摸鱼狗一枚.本博客旨在总结与分享个人准备电赛所学知识,同时也是为了防止遗忘,锻炼写文章的能力.目前电赛方向为自控方向.主要研究方向为单片机.图像处理.自动控制相关 ...

  8. ACM 五一杭电赛码"BestCoder"杯中国大学生程序设计冠军赛小记

    对于这项曾经热爱的竞赛,不得不说这是我最后一年参加ACM比赛了,所以要珍惜每一次比赛的机会. 五一去杭电参加了赛码"BestCoder"杯中国大学生程序设计冠军赛,去的队伍包括了今 ...

  9. 电赛总结(四)——波形发生芯片总结之AD9854

    一.特性参数 ·300M内部时钟频率 ·可进行频移键控(FSK),二元相移键控(BPSK),相移键控(PSK),脉冲调频(CHIRP),振幅调制(AM)操作 ·正交的双通道12位D/A转换器 ·超高速 ...

随机推荐

  1. H2Database数据类型

    数据类型   整数(INT) 布尔型(BOOLEAN) 微整数(TINYINT) 小整数(SMALLINT) 大整数(BIGINT) 标识符(IDENTITY) 货币数(DECIMAL) 双精度实数( ...

  2. apache如何配置默认的根目录

    在本地安装了wamp环境,默认的根目录是D:\wamp\www,使用起来非常不方便.那如何改变默认的根目录呢 1,找到httpd.conf文件 D:\wamp\bin\apache\Apache2.2 ...

  3. LINUX中,Vi编辑器的几种模式及保存、退出等命令

    vi编辑器有三种模式: 命令模式,编辑模式,末行模式 打开vi后首先是命令模式,用i,o,a等进入编辑模式,按esc退出编辑模式,回到命令模式. 在命令模式下输入:wq表示保存退出,:wq!强制保存退 ...

  4. [Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中

    理解原型对象与其实例之间是一对多的关系,对于实现正确的对象行为很重要.常见的错误是不小心将每个实例的数据存储到了其原型中. 示例 一个实现了树型数据结构的类可能将子节点存储在数组中. 实例状态在原型中 ...

  5. [Effective JavaScript 笔记]第53条:保持一致的约定

    对于api使用者来说,你所使用的命名和函数签名是最能产生普遍影响的决策.这些约定很重要具有巨大的影响力.它建立了基本的词汇和使用它们的应用程序的惯用法.库的使用者必须学会阅读和使用这些.一致的约定可以 ...

  6. [Effective JavaScript 笔记]第59条:避免过度的强制转换

    js是弱类型语言.许多标准的操作符和代码库会把输入参数强制转换为期望的类型而不是抛出错误.如果未提供额外的逻辑,使用内置操作符的程序会继承这样的强制转换行为. functin square(x){ r ...

  7. 彻底理解数字图像处理中的卷积-以Sobel算子为例

    彻底理解数字图像处理中的卷积-以Sobel算子为例 作者:FreeBlues 修订记录 2016.08.04 初稿完成 概述 卷积在信号处理领域有极其广泛的应用, 也有严格的物理和数学定义. 本文只讨 ...

  8. SQL注入自学[第二学:注入环境的简单突破]

    /* 原文出处:珍惜少年时 留给原创一个ZBD机会. 加号即空格 */ 00x1 判断是否含有注入 http://127.0.0.1/1.php?id=3 and 1=1-- 返回正确的页面. htt ...

  9. 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法

    1.安全性---登录名---新建登录名 2.常规----搜索 3.添加SERVICE用户-- 4.服务器角色---勾上sysadmin: IIS中: 应用程序池---对应的程序池上右键---高级设置 ...

  10. 右移>> 和 左移<<

    一个int占四个字节,也就是32位,这样的话1不论左移还是右移32位仍旧移到原来的位置,就仍旧是1了. 右移是除,左移是乘.1除1除32次和1乘1乘32次当然都还是1了. 移位操作的简单计算方法 &g ...