以 led闪烁中的flashLed函数例子:

库函数操作简单,但是效率不如寄存器操作的高;
寄存器操作很复杂,因为要熟悉上百个寄存器,但是程序效率很高

/**下面是通过直接操作库函数的方式实现IO控制**/	

	while(1)
	{
	GPIO_ResetBits(GPIOB,GPIO_Pin_9);  //LED0对应引脚GPIOF.9拉低,亮  等同LED0=0;
	GPIO_SetBits(GPIOB,GPIO_Pin_10);   //LED1对应引脚GPIOF.10拉高,灭 等同LED1=1;
	delay_ms(500);  		   //延时300ms
	GPIO_SetBits(GPIOB,GPIO_Pin_9);	   //LED0对应引脚GPIOF.0拉高,灭  等同LED0=1;
	GPIO_ResetBits(GPIOB,GPIO_Pin_10); //LED1对应引脚GPIOF.10拉低,亮 等同LED1=0;
	delay_ms(500);                     //延时300ms
	}

/**
*******************下面注释掉的代码是通过 位带 操作实现IO口控制**************************************/

int main(void)
{ 

	delay_init(168);		  //初始化延时函数
	LED_Init();		        //初始化LED端口
  while(1)
	{
     LED0=0;			  //LED0亮
	   LED1=1;				//LED1灭
		 delay_ms(500);
		 LED0=1;				//LED0灭
		 LED1=0;				//LED1亮
		 delay_ms(500);
	 }
}
/**************************************************************************************************
 **/	

/**
*******************下面注释掉的代码是通过 直接操作寄存器 方式实现IO口控制**************************************/
int main(void)
{ 

	delay_init(168);		  //初始化延时函数
	LED_Init();		        //初始化LED端口
	while(1)
	{
     GPIOF->BSRRH=GPIO_Pin_9;//LED0亮
	   GPIOF->BSRRL=GPIO_Pin_10;//LED1灭
		 delay_ms(500);
     GPIOF->BSRRL=GPIO_Pin_9;//LED0灭
	   GPIOF->BSRRH=GPIO_Pin_10;//LED1亮
		 delay_ms(500);

	 }
 }
/**************************************************************************************************
**/	

/*我想说我更喜欢这样的,呵呵*/
                 while(1)
		{
			 //FlashLED();
			*(unsigned int*)(0x40010c0c) |=0x200 ;
			delay_ms(100);
			*(unsigned int*)(0x40010c0c) &=0xfffffdff ;
			delay_ms(100);
	        } 

STM32 下的库函数和寄存器操作比较的更多相关文章

  1. STM32---初学者用库函数好还是直接对寄存器操作比较好

    引用:http://blog.csdn.net/u010349006/article/details/416 首先,两个都是C语言.从51过渡过来的话,就先说寄存器操作.每个MCU都有自己的寄存器,5 ...

  2. STM32串口寄存器操作(转)

    源:STM32串口寄存器操作 //USART.C /************************************************************************** ...

  3. Linux下SPI读写外部寄存器的操作

    SPI写寄存器操作: staticvoid mcp251x_write_reg(struct spi_device *spi, uint8_t reg, uint8_t val)   {   stru ...

  4. STM32 串口功能 库函数 详解和DMA 串口高级运用(转载)

    数据传输时要从支持那些相关的标准?传输的速度?什么时候开始?什么时候结束?传输的内容?怎样防止通信出错?数据量大的时候怎么弄?硬件怎么连接出发,当然对于stm32还要熟悉库函数的功能 具起来rs232 ...

  5. (stm32学习总结)—对寄存器的理解 _

    芯片里面有什么 我们看到的 STM32 芯片是已经封装好的成品,主要由内核和片上外设组成.若与电脑类比,内核与外设就如同电脑上的 CPU 与主板.内存.显卡.硬盘的关系.STM32F103 采用的是 ...

  6. (stm32学习总结)—对寄存器的理解

    芯片里面有什么 我们看到的 STM32 芯片是已经封装好的成品,主要由内核和片上外设组成.若与电脑类比,内核与外设就如同电脑上的 CPU 与主板.内存.显卡.硬盘的关系.STM32F103 采用的是 ...

  7. STM32定时器的预装载寄存器与影子寄存器之间的关系【转】

    首先转载:   STM32定时器的预装载寄存器与影子寄存器之间的关系 本文的说明依据STM32参考手册(RM0008)第10版:英文:http://www.st.com/stonline/produc ...

  8. STM32时钟系统的配置寄存器和源码分析

    一.时钟系统 概述 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令,时钟系统就是CPU的脉搏,决定cpu速率. STM32有多个时钟来源的选择,为什么 STM32 要有多个时钟源呢 ...

  9. 直接对寄存器操作,实现usart的串口输出寄存器的配置

    就像前面提到的,我用的板子是一款stm32f107系列的板子,在这块板子上,已经开发出了一套比较成熟的库函数,这也就意味着你可以不用直接去操作存储器来实现某些功能.比方说对于USART来说可以直接通过 ...

随机推荐

  1. 深入浅出Hadoop之HDFS

    hadoop生态系统一直是大数据灵域的热点,其中包括今天要聊的HDFS,和计划以后想聊的yarn, mapreduce, spark, hive, hbase, 已经聊过的zookeeper,等等. ...

  2. JavaScript 基本语法 -- 数据类型 & 变量

    JavaScript都有哪些数据类型呢? 在JavaScript里面,数据类型分为两类:原始类型(primitive type)和对象类型(object type) 1. 原始类型(我的理解,不可分割 ...

  3. Kafka Consumer

    Push VS Pull An initial question we considered is whether consumers should pull data from brokers or ...

  4. JavaBean命名规范

    ———————————————————————————————————————————————————————— 属性名/类型                    |                 ...

  5. SPOJ Highways [矩阵树定理]

    裸题 注意: 1.消元时判断系数为0,退出 2.最后乘ans要用double.... #include <iostream> #include <cstdio> #includ ...

  6. 网络编程基础+UDP的实现

    网络地址分类(32位网络地址) A类地址:第一个字节为网络地址,其他3个字节主机地址,第一字节的最高位固定为0 从1.0.0.1------126.255.255.255 B类地址:第一字节和第二字节 ...

  7. ajax请求 readyState为0 可能原因之一

    问题:同样的代码逻辑,PC端和iOS都能正常访问,但是Android系统请求都是报错: 上网查阅,关于ajax请求失败且状态码都是0的情况有很多,最后排查的原因是:域名证书问题:

  8. shell编程值之shell流程控制(7)

    条件判断式 1 按照文件类型判断(常用类型) 测试类型 作用 -d 文件 判断该文件是否存在,并且是否为目录文件(是目录文件为真) -e 文件 判断该文件是否存在(存在为真) -f 文件 判断该文件是 ...

  9. php正则判断字符串是否含有中文

    <?php $str = '若你安好便是晴天'; if (preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $str)>0) { echo '全是中文'; } ...

  10. Python学习/复习神器-->各种方法/技巧在哪用和典型例子(一)

    就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到应用,还是沿用已有的方法,这样很不利于学习和掌握新姿势,从而拉长学习时间,增 ...