6536|12

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

发个贴问下大家用着stm32f10x_stdperiph_lib(V3.0.0)咋样??? [复制链接]


觉着(用着)怎么样?用着的讲解一下··感激 
此帖出自stm32/stm8论坛

最新回复

                                 关于NVIC的操作,原来旧库(2.0.3及以下)中的<stm32f10x_nvic.c>没有了。NVIC的功能在<core_cm3.h>中定义的。和以前函数功能相比,如下表:为了方便使用,保留了原来老库中的五个常用函数,仍然可以继续使用,定义在<misc.c>中,如下:用户配置应用程序中的中断时,可以使用新的<core_cm2.h>中的新函数;也可以使用<misc.c>中的老函数。关于SYSTICK的功能,原来的库函数<stm32f10x_systick.c>和其中的函数都没有了。CMSIS只提供了唯一一个函数@ <core_cm3.h>,即:SysTick_Config(uint32_t ticks);该函数包含了所有的操作:1)重装载值的配置,计数器复位值固定为02)控制寄存其中:固定使用系统时钟为systick的源;使能中断;使能计数器。3)SystickIRQ的优先级配置   详情 回复 发表于 2009-5-4 10:07
点赞 关注
 

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

比2.0有进步

                                 至于ST库的优劣,仁者见仁智者见智
此帖出自stm32/stm8论坛
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

这个函数NVIC_SetPriority()源码在哪里?

我在3.0.0中怎么没有看到这个函数的源代码呢?以下整个函数在core_m3.h中.

static __INLINE uint32_t SysTick_Config(uint32_t ticks)

  if (ticks > SYSTICK_MAXCOUNT)  return (1);                                                /* Reload value impossible */

  SysTick->LOAD  =  (ticks & SYSTICK_MAXCOUNT) - 1;                                         /* set reload register */
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);                               /* set Priority for Cortex-M0 System Interrupts */
  SysTick->VAL   =  (0x00);                                                                 /* Load the SysTick Counter Value */
  SysTick->CTRL = (1 << SYSTICK_CLKSOURCE) | (1<<SYSTICK_ENABLE) | (1<<SYSTICK_TICKINT);    /* Enable SysTick IRQ and SysTick Timer */
  return (0);                                                                               /* Function successful */
}
此帖出自stm32/stm8论坛
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 

那你找“NVIC_SetPriorityGrouping”试试看

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 

也没找到,找到NVIC_PriorityGroupConfig,在文件misc.c中

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
{
  /* Check the parameters */
  assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
  
  /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
  SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
}
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 

另外很多函数开始使用inline修饰

我觉得这个非常好

inline函数的优势是,形式是函数,实现是宏展开。
为调试带来很多便利,同时具有宏的执行效率。


另外,根据C99的语言规范,inline函数的展开处理并不是强制的,
也就是说,C编译器根据实际情况做是否展开的决定。
比如,当前存储对用户的程序很宽松,则会展开,如果存储很紧张,可能就当成了普通的函数。
这完全取决于编译器的策略。

就像C语言中变量的register修饰符一样,是建议编译器用寄存器存储我们
指定的变量。编译器会在可能的范围内去满足,但如果用户定义的寄存器变
量超多,C编译器会把部分变量当做普通变量,并不会给出错误和警告。


此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 

这么说吧。

这个固件库为了 一个什么标准,为了所有CORTEX-M3内核的处理器相关的代码都一致,去掉了原来的库中的一些文件····
(如stm32f10x_nvic.c  stm32f10x_systick.c文件)
最不爽的是它去掉了原来Systick相关的一个文件(因为SYSTICK是内核的一部分)。现在在库中的core_m3.h文件中,仅有SysTick_Config()这一个对SysTick操作的一个函数,而其内部的NVIC_SetPriority()的实现却没找到源码,故有以上疑问··
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 

在3.0的库中CMSISCoreCM3core_cm3.h

在第1039行

你用SI或者UE打开,搜索一下,肯定有
我都看到了,你能看不到。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 

看到了···

 我用IAR ,点右键 : go to definition of NVIC_SetPriority,就跑到
core-m3.c中去了,我在core-m3中找,怪不的找不到。

谢谢McuPlayer
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 

这叫做browse功能,IAR和Keil都有

                                 编译的时候把“browse information”选中就可以用这个功能了
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

11
 

不过,ST把inline函数放在h文件中不是个好习惯

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 

感谢McuPlayer


此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 

新库3.0.0在Cortex内核功能方面的访问改变

关于NVIC的操作,原来旧库(2.0.3及以下)中的<stm32f10x_nvic.c>没有了。NVIC的功能在<core_cm3.h>中定义的。

和以前函数功能相比,如下表:


为了方便使用,保留了原来老库中的五个常用函数,仍然可以继续使用,定义在<misc.c>中,如下:


用户配置应用程序中的中断时,可以使用新的<core_cm2.h>中的新函数;也可以使用<misc.c>中的老函数。


关于SYSTICK的功能,原来的库函数<stm32f10x_systick.c>和其中的函数都没有了。CMSIS只提供了唯一一个函数@ <core_cm3.h>,即:
SysTick_Config(uint32_t ticks);

该函数包含了所有的操作:
1)重装载值的配置,计数器复位值固定为0
2)控制寄存其中:固定使用系统时钟为systick的源;使能中断;使能计数器。
3)SystickIRQ的优先级配置
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表