点亮LED(库函数实现)

本次测试采用的芯片是STM32F103CB

我的开发板如下:

此开发板有8个led,分别为D11,D12,D13,D14,D15,D16,D17,D18。查询核心板的电路图后知道其对应芯片的控制引脚为P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,P0.8。

现在开始测试点亮D11。主要源代码如下:

1 //main.c
2 #include "pbdata.h"
3 #include "led.h"
4
5 int main(void)
6 {
7         led_init();
8         led_setBit();
9 }
1 //pbdata.h
2 #ifndef _pbdata_H
3 #define _pbdata_H
4
5 #include "stm32f10x.h"
6 void delay(u32 nCount);
7
8 #endif
1 //pbdata.c
2 #include "pbdata.h"
3
4 void delay(u32 nCount)
5 {
6     for(;nCount != 0;nCount--);
7 }
 1 //led.h
 2 #ifndef _LED_H
 3 #define _LED_H
 4
 5 #define GPIO_Pin_x GPIO_Pin_8
 6 #define GPIO_LED GPIOB
 7
 8 void led_init(void);
 9 void led_setBit(void);
10
11 #endif
 1 //led.c
 2 #include "led.h"
 3 #include "pbdata.h"
 4
 5 void led_init(void)
 6 {
 7     GPIO_InitTypeDef GPIO_InitStructure;
 8
 9     SystemInit();  /*设置系统时钟*/
10
11     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;
12     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
13     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
14
15     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);/*打开LED使用的GPIO的时钟使能*/
16     GPIO_Init(GPIO_LED,&GPIO_InitStructure);
17 }
18
19 void led_setBit(void)
20 {
21     while(1)
22     {
23     GPIO_SetBits(GPIO_LED,GPIO_Pin_x);  //set 1
24     delay(6000000);
25     GPIO_ResetBits(GPIO_LED,GPIO_Pin_x);
26     delay(6000000);
27     }
28 }

                                          寄存器版后续更新中...

2014-08-19 01:30:14

点亮LED(库函数实现),布布扣,bubuko.com

时间: 2024-10-13 21:38:10

点亮LED(库函数实现)的相关文章

STM32F407第一步之点亮LED

STM32F407第一步之点亮LED. 要点亮LED,首先了解一下F4的GPIO模块.首先看一下STM32F4数据手册,GPIO模块的内部结构图 看上去有点复杂,不要怕,慢慢理解就可以了.对外引脚那里二极管就是保护的作用.通过上.下拉对应的开关配置,控制引脚默认状态的电压,开启上拉的时候引脚电压为高电平,开启下拉的时候引脚电压为低电平,这样可以消除引脚不定状态的影响.但是这个不应该用来作为外部的上拉或下拉用,如按键的拉电阻不能用这个内部来作用,如果用可能会引起按键不稳定. GPIO 具有了“推挽

使用寄存器点亮LED——编程实战

stm32的编程和stc89c51还是存在着很多思想上的不同的,在51单片机中,我们点亮LED灯,只用给对应IO高低电平就可以了,而stm32中,就一个简单的GPIO,我们也需要配置好几个寄存器,而且,就算配置好GPIO寄存器,我们还必须有一步不能缺少的操作,那就是开启对应GPIO的时钟.在stm32的编程中,开启对应时钟是必不可少的一个操作,而且,开启时钟的操作必须在配置相应寄存器之前,以GPIO为例,如果我们先配置GPIO的寄存器,不开启时钟或者先配置GPIO寄存器,最后再开启时钟,都不能正

第11章 GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列

第11章 ????GPIO输出-使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ? 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LE

STM32-新建工程,点亮led

讲之前忽然想起来,keil arm和51一起安装需要做点工作,可以参考这里点击打开链接,我也简单讲一下,如下图 如果装了arm或51的keil就会有arm文件夹或者c51文件夹,在此基础上要再装一个,就直接把相应的那个文件夹复制到这里来,文件夹可以上网找,或者装了再复制出来,这样就有了arm和51两个文件夹,接下只要改一下TOOLS文件就行了,就是把相应加进来的文件夹的配置填到TOOLS里去,注意path要根据个人情况填安装的路径,具体的内容看 链接. 首先新建工程 我用的是正点原子的mini板

第11章 GPIO输出—使用固件库点亮LED

第11章     GPIO输出-使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LED灯

嵌入式学习笔记002-点亮led

正如编写第一个程序所打印"hello world"那样,对TQ2440开发板的初次使用也是从最简单的部分入手,点亮led灯无疑是最简单的,起码只要设置几个寄存器就好,比起打印容易得多了,后续会讲到串口部分再来实现我们这句金典的对白~~~~ 板子共有4个led灯,如果能够成功点亮其中一个,那么其他几个将不是问题,故而我们的目标是先点亮第一个先,在此我们必须理清几个问题: a. led的引脚连接的相关寄存器 b. 编写的语言 c. 用什么来编译链接成可执行文件 d. 怎么download到

arm9 点亮led程序优化导致全亮问题

如需转载请注明出处 本实验是arm9 裸板程序,主要功能是循环点亮4个led. 参考伟山东的<嵌入式linux应用开发>点亮led节. 电路图如下: 代码如下: head.s .text .global _start _start: ldr r0, =0x56000010 @ WATCHDOG寄存器地址 mov r1, #0x0 str r1, [r0] @ 写入0,禁止WATCHDOG,否则CPU会不断重启 ldr sp, =1024*4 @ 设置堆栈,注意:不能大于4k, 因为现在可用的内

【蓝牙低功耗BLE】控制GPIO来点亮LED

这节讲一下最简单的,也是最基础的东西,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

嵌入式Linux裸机开发(一)——点亮Led

嵌入式Linux裸机开发(一)--点亮Led 开发板:友善之臂smart210 一.电路图查阅 1.底板电路图 查阅开发板底板电路图,查阅LED相关部分 LED电路工作原理: LED的正极接3.3V,负极接地时导通,LED发光. 开发板共有四颗LED,正极接3.3V,负极接开发板的LED1_LED4引脚,如果LED要点亮则需要输入低电平. 2.核心板电路图 查阅核心板电路图可知,LED1-LED4接在SoC的GPJ2_0-GPJ2_3,通过控制GPJ2_0-GPJ2_3的寄存器使对应GPIO引脚