历史上的今天

今天是:2024年08月26日(星期一)

正在发生

2018年08月26日 | STM32 下的库函数和寄存器操作比较

发布者:SereneDreams 来源: eefocus关键字: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); 

       } 


关键字:STM32  库函数  和寄存器操作 引用地址:STM32 下的库函数和寄存器操作比较

上一篇:STM32库函数和寄存器操作的思考
下一篇:STM32之寄存器访问

推荐阅读

1959年,恩格尔伯格和德沃尔发明了世界上第一台工业机器人Unimate,采用液压执行机构的它庞大而又笨重,只能完成最简单的搬运动作。由于研发成本高昂,只有像通用汽车这样的行业巨头才能负担得起。然而,就是这样一个看似普通的自动化设备,却在后来长达半个多世纪的时间中,以自己的力量推动着整个世界的制造业向前跃进。今天,当传统工业机器人继续在各...
8月26日消息,近日,汽车智能网联生态系统服务商“小马立行”完成数千万B轮融资,领投方为度量衡资本。小马立行本轮融资主要用于核心技术的持续投入、核心应用产品的开发和运营投入。 小马立行成立于2015年,是一家由原腾讯天美艺游工作室核心骨干和汽车行业资深人士联合组建的车联网科技企业,其核心业务是车联网生态系统的研发与运营。 目前,小马立行已...
福禄克数字万用表哪个型号好?如果你只是需要一个入门级的数字万用表,可以考虑Fluke101/101Kit数字万用表,这是电气专业人员的首选万用表。Fluke101/101Kit数字万用表用于基本电气检测,可供民用/商业用电电工以及暖气和空调技术人员使用来进行可靠检测。此款数字万用表小巧轻便,手握舒适。亦坚固耐用,可供您多年日常使用。如果您需要一个经济实惠的专...
2021年8月26日 – 专注于引入新品推动行业创新的电子元器件分销商贸泽电子(Mouser Electronics)宣布其工程客户通过mouser.com 上的ECAD资源下载模型的次数突破了100万。自全球授权分销商贸泽电子推出ECAD网站以来,已有来自181个国家/地区将近10万名独立用户下载了贸泽的ECAD模型。贸泽的ECAD网站是与电子元件库解决方案全球知名供应商SamacSys一起开...

史海拾趣

问答坊 | AI 解惑

C语言专题——标准库

1 三角函数 double sin (double); double cos (double); double tan (double); 2 反三角函数 double asin (double);   结果介于[-PI/2, PI/2] double acos (double);   结果介于[0, PI] double atan (double);  ...…

查看全部问答∨

MCU的选用

MCU的选用,重为学习可用SCT12 2052/4052,便于编程,如要做成微功耗麻雀俱全型可选用MSP430系列,…

查看全部问答∨

8*8点阵 奥运会开幕式模拟

本帖最后由 paulhyde 于 2014-9-15 03:41 编辑 奥运会开幕式模拟  …

查看全部问答∨

做点什么

马上就要比赛了   该做点什么呢  大家给点意见哈!!!!…

查看全部问答∨

zstack安装问题 请大侠救我!!!

安装ZStack-CC2430-1.4.2-1.1.0的时候老是出现问题,           要怎么解决啊!!…

查看全部问答∨

德州仪器-将运算放大器用作比较器—此举可行吗?

本帖最后由 dontium 于 2015-1-23 12:47 编辑 许多人偶尔会把运算放大器当比较器使用。一般而言,当您只需要一个简单的比较器,并且您在四运算放大器封装中还有一个“多余”运算放大器时,这种做法是可行的。稳定运算放大器运行所需的相位补偿意味 ...…

查看全部问答∨

How to set up the development environment for AM335X 中文手册

How to set up the development environment for AM335X 中文手册…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved