zoukankan      html  css  js  c++  java
  • STM32 下的库函数和寄存器操作比较

    以 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); 
    	        } 


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    spark hbase
    Benchmark简介
    Flink的安装配置
    Hive入门及常用指令
    hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置
    Linux最常用的命名
    数据库的零散的总结
    DBA总结
    MySQL主从架构配置
    mysql主从读写分离,分库分表
  • 原文地址:https://www.cnblogs.com/mao0504/p/4732024.html
Copyright © 2011-2022 走看看