GPIO简介 GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚, STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯.控制以及数据采集的功能.STM32 芯片的 GPIO 被分成很多组,每组有 16 个引脚,如型号为 STM32F103VET6 型号的.芯片有 GPIOA. GPIOB. GPIOC 至 GPIOE 共 5 组 GPIO,芯片一共 100 个引脚,其中GPIO 就占了一大部分,所有的 GPIO 引脚都有基本的输入输出功能. 最基本的…
第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx 中文参考手册>.<STM32F429规格书>. 学习本章时,配合<STM32F4xx 中文参考手册>"通用I/O(GPIO)"章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分.关于建立工程时使用KEIL5…
第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx 中文参考手册>.<STM32F429规格书>. 学习本章时,配合<STM32F4xx 中文参考手册>"通用I/O(GPIO)"章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分.关于建立工程时使用KEIL5…
学习步骤: 使用寄存器点亮LED灯,需要进行如下的步骤,LED灯属于外设部分,首先需要开启外设的时钟使能,然后LED灯是PB1口,(芯片是正点原子的阿波罗),接着定义GPIOB口的输出模式,为上拉.推挽.100M,最后定义B口的1引脚为低电平就可以实现点亮了. 这一部分内容耗时有点长,最后发现关键原因在于调试的时候未按复位键,这个原因我也是很无语啊,怪不得在之前下载完程序,第二天早上去开电源的时候,一个灯亮了,原来程序写的是对的呀~~~ 错误与总结: 错误就是按键问题,下载完程序我一看灯没亮,于…
1. 项目:使用stm32寄存器点亮LED, 分别点亮红.绿.蓝3个灯. 2. 步骤 先新建个文件夹保存项目 再新建项目 将startup_stm32f10x_hd.s拷贝到该文件夹下 新建main.c子项目 再次在文件夹中新建stm32f10.h文件 编写main.c,将stm32f10.h导入编译 编写stm32f10.h子项目 3. 代码 main.c #include "stm32f10x.h" int main(void) { //开启GPIOB端口时钟 RCC_APB2EN…
1. 项目:使用stm32寄存器点亮LED, 分别点亮红.绿.蓝3个灯. 2. 代码: 只需要编写main.c程序,stm3210x.h程序为空(只需要新建即可). 2.1 点亮绿灯main.c程序 #include "stm32f10x.h" int main(void) { //打开GPIOB端口的时钟 *(unsigned int * )0x40021018 |= ((1)<<3); //置位1 //配置IO口为输出,设置PB0输出低电平,点亮绿灯 *(unsigne…
// 打开 GPIOB 端口的时钟 *( unsigned int * )0x40021018|= ( 1 << 4 ); // 配置PC2 IO口为通用推挽输出,速度为10M *( unsigned int * )0x40011000 &=~ ( 0x0f << (4*2) );//GPIOC IO 4位清空         *( unsigned int * )0x40011000 |= ( 1 << (4*2) );// 通用推挽输出,速度为10M //…
stm32的编程和stc89c51还是存在着很多思想上的不同的,在51单片机中,我们点亮LED灯,只用给对应IO高低电平就可以了,而stm32中,就一个简单的GPIO,我们也需要配置好几个寄存器,而且,就算配置好GPIO寄存器,我们还必须有一步不能缺少的操作,那就是开启对应GPIO的时钟.在stm32的编程中,开启对应时钟是必不可少的一个操作,而且,开启时钟的操作必须在配置相应寄存器之前,以GPIO为例,如果我们先配置GPIO的寄存器,不开启时钟或者先配置GPIO寄存器,最后再开启时钟,都不能正…
在点亮LED之前,我们需要具备一些基础知识: GPIO—general purpose intput output 是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯.控制以及数据采集的功能. 1.GPIO跟引脚有什么区别? 2.如何查找每一个GPIO的功能说明? 引脚包含了GPIO,也就是GPIO是引脚的子集. 通过<STM32F4xx英文数据手册>可以查询每一个GPIO的功能说明,需要注意带FT标志的表示兼容5V,否则…
因为我写寄存器的操作不太熟练,所以最近腾出时间学习了一下怎么写寄存器,现在把我的经验贴出来,如有不足请指正 我使用的板子是stm32F103C8T6(也就是最常用的板子),现在要通过写GPIO的寄存器来实现点亮LED灯 查阅原理图可得,板子的PC13引脚外接了一个LED灯,也就是说我们接下来的操作是针对PC13这个引脚的 我们首先要找到GPIOC管脚的首地址(如下图所示) 所以我们GPIOC的地址是从0x40011000开始的 通过查阅手册,我们可以得知可以通过写BSRR寄存器来达到我们的目的,…
最基本的输入功能是检测外部输入电平,如把 GPIO引脚连接到按键,通过电平高低区分按键是否被按下. 基本结构分析 2. P-MOS管和 N-MOS管 main.c中的main函数…
这节讲一下最简单的,也是最基础的东西.CC2540的IO操作,把PORT口当做GPIO来用,废话不多说,往下看. 1.硬件电路 硬件电路时最简单的,用一根GPIO去控制LED灯.因为GPIO作为output.所以也不用管GPIO的模式. 还是挺简单的,控制左边GPIO的高低来开关LED灯. 2.相关寄存器 P0SEL      P0[7:0]功能设置寄存器,默认设置为普通I/O口 P0INP P0[7:0]作为输入口时电路模式寄存器.能够设置为输入上下拉等 P0 P0[7:0]能够位寻址的I/O…
这一节里,我们来使用平台驱动设备这一套架构来实现我们之前使用简单的字符设备驱动点亮LED,这里并无实际意义,只是告诉大家如果编写平台总线驱动设备. 问:如何编写平台总线驱动设备这一套架构的设备驱动? 答:分为两个.c文件,一个是drv.c,另一个是dev.c:前者实现平台驱动,后者实现平台设备,平台总线不用我们自己实现. 问:编写平台驱动的核心内容有哪些? 答:分配.设置.注册一个platform_driver 问:如何注册平台驱动? 答:使用platform_driver_register(s…
接着上一章,本章来实现控制LED的亮灭操作: 一.驱动框架 #include <linux/fs.h> #include <linux/init.h> /* 定义文件内私有结构体 */ struct led_device { struct cdev cdev; int stat; /* 用于保存LED状态,0为灭,1为亮 */ }; /* LED write()函数 */ static ssize_t led_write(struct file *filep, const char…
手头的Mini2440搁置了两年半之后,我再次决定拿出它,重新尝试嵌入式Linux的学习. 我使用的是友善之臂的Mini2440开发板.韦东山的<嵌入式Linux应用开发完成手册>及其视频教程.所以,本篇文章中所涉及到的各种软件均可在以下两处找到: 0. Mini2440开发板的配套光盘 韦东山JZ2440开发板的光盘 JZ2440是韦东山出品的开发板,作为<嵌入式Linux应用开发完全手册>的配套硬件,它和Mini2440相差无几,所以我这里用的是Mini2440. 一.目标 动…
1. 项目 使用STM32F103VE的固件库实现流水灯设计. 2. 代码 由于这是基于野火的视频进行学习的,项目代码在上节基础上进行编写的. 点亮绿灯: main.c #include "stm32f10x.h" //相当于51单片机中的 #include <reg51.h> #include "bsp_led.h" void Delay(uint32_t count) { for(; count!=0; count--); } int main(vo…
STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽式输出 7.推挽式复用功能 8.开漏复用功能 stm32GPIO模式设置相关寄存器设置的介绍 stm32中文参考手册中对GPIO模式设置对应寄存器的详细介绍: 下图为开发板LED的接线图: 根据上面的电路图可知,将GPIOB…
STM32F407第一步之点亮LED. 要点亮LED,首先了解一下F4的GPIO模块.首先看一下STM32F4数据手册,GPIO模块的内部结构图 看上去有点复杂,不要怕,慢慢理解就可以了.对外引脚那里二极管就是保护的作用.通过上.下拉对应的开关配置,控制引脚默认状态的电压,开启上拉的时候引脚电压为高电平,开启下拉的时候引脚电压为低电平,这样可以消除引脚不定状态的影响.但是这个不应该用来作为外部的上拉或下拉用,如按键的拉电阻不能用这个内部来作用,如果用可能会引起按键不稳定. GPIO 具有了“推挽…
要点亮LED,先决条件是什么,当然得有相应的硬件设施.板子的整个电路图比较大,我就直接取相关部分. 给发光二级管加上3.3v电压后,通过1k电阻,直接与S3C2440连接.至于为什么要加电阻,大家应该都知道,发光二极管的正向电阻很小,管子很容易因电流过大而烧坏.至于具体多少,可以看你买的管子的说明. 具体的烧写驱动安装,ARM集成开发环境安装我就不说了.一般都有手册,手册里面说得很清楚. 下面是代码实现: AREA LED,CODE,READONLY ENTRY CODE32GPFCON EQU…
一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2530芯片却需要对IO口进行配置,才能对它进行赋值,需要配置的寄存器有PXSEL,PXDIR,PXINP,x可以代表任意IO口,如P1SEL. 下面介绍PXSEL的功能: 下面介绍PXDIR的功能: 下面介绍PXINP的功能: 通过配置以上寄存器的,就可以控制IO口德输入输出状态,是否做为普通IO口…
一.先看原理图:…
在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出. 下面是JZ2440的3个LED电路图: 下面是JZ2440的3个按键的电路图 通过查找nLED_1,nLED_2,nLED_4对应的引脚,发现它们分别对应GPF4,GPF5,GPF6,如图: 通过查找EINT0,EINT2,EINT11对应的引脚,发现它们分别对应GPF0,GPF2,GPG3,如图: 由此,我们再去看2440的Datasheet,查看它们的控…
点亮指路灯:学习四环节:led原理图分析,芯片手册导读,思维导图设计,为什么要使用led:通常led是作为程序调试的重要手段.led原理图:led实质为发光二极管,当其两端电压一定时,即处于导通状态.OK6410核心板原理图-256MDDR-2g p4页找到nled所对应的引脚分别为GPM1,GPM2,GPM0,GPM3,将引脚处设为低电平,二极管即可导通.--------------------------------------------------------GPIO(general-p…
视频地址:https://www.bilibili.com/video/av10765766 超详细!!!!!! 单片机内部三大资源 [资源:单片机可提供使用的东西] FLASH 可以重复擦写 断电后数据不丢失 RAM 存储中间运算过程中产生和需要的数据 数据断电丢失 读写速度非常快 无限次擦写 SFR 单片机内部的功能对应一个或多个SFR 对SFR的读写.配置来实现单片机各种功能 啥是51单片机? 兼容Inter的MCS-51体系架构的一系列单片机 选择的STC89C52的数据 想让单片机运行…
In Doing We Learning 在操作中学习.如果只是光看教程,没有实际的操作,对编程语言的理解很空泛,所以决定从单片机中学习C语言. #include<reg52.h>                 //包含的头文件. sbit LED = P0^0;                         //这里就是对P0寄存器进行位操作.相当于对P0^0位赋予了一个新的名字,LED.实际上这一块可以包含在头文件中.避免重复操作.sbit ADDR0 = P1^0;sbit ADDR…
第11章     GPIO输出—使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LED灯…
在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言. 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并且自己编写C语言的库函数版本,方便以后开发,同时也是对自己C语言封装能力的锻炼. 先贴韦老大的代码: start.s: .text .global _start _start: /* 设置内存: sp 栈 */ ldr sp, = /* nand启动 */ // ldr sp, =0x4000000…
第11章     GPIO输出—使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LED灯…
本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以得到以下信息(见下方图片) JZ2440开发板用到了S2,S3,S4三个按键,nLED1,nLED2,nLED4三盏LED灯,它们对应的寄存器位分别是: 按键:S2(EINT0)——GPF0 S3(EINT2)——GPF2 S4(EINT11)——GPG3 LED:  nLED1——GPF4 nLE…
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 一.我们首先来做第一个实验,用汇编语言点亮板子上的LED. 1.1 LED的原理图 从下面的原理图可知LED1是连接到芯片的GPF4                         1.2 相关的GPIO寄存器的配置 我们要点亮LED,就要把相关的端口配置成输出口,并且输出低电平.看看芯片手册,要GPF4输出低电平要配置GPFCON寄存器设置相应的位位01即为输出状态,在配置GPFDAT相应的位为0即可输出低…