⑴ STM32单片机库函数问题
一般不行
必须要调用stm32f10x_rcc.c,SystemInit()只是将系统的时钟帮你配置好,其实你也可以不调用它,你可以自己调用stm32f10x_rcc.c中的函数自己来配置,不过这样的话就要记得配置好flash的等待周期,两种方式之间没什么太大区别。另外一般你会需要开启外设的时钟或者其他一些功能就需要调用stm32f10x_rcc.c中的函数。
还有如果你使用的是3.2.0以上的库的话,SystemInit()其实不需要你自己调用,startup_stm32f10x_XX.s中有这样的代码
Reset_Handler
LDR R0, =SystemInit
意思就是上电(Reset)后执行的第一段代码就是SystemInit(),这是在main函数之前调用的,所以不需你自己再去调用了
SystemInit()在调用的时候要注意你自己板子上的外部晶振是多少,默认是25MHZ,如果你板子上的晶振的不是这么大的话,你需要修改stm32f10x.h里面的HSE_Value
补充:system_stm32f10x.c里的函数的功能仅仅是完成系统时钟的配置,如果你不使用任何外设或者用系统时钟做其他用的话是可以不用stm32f10x_rcc.c
stm32f10x_rcc.c中的函数不仅仅是完成分频倍频的功能,还有开启外设时钟,检测RCC中断,配置RTC时钟等功能,不是单单配置一个系统时钟那么简单
⑵ 51单片机c语言里 _nop_ 函数怎么用
在单片机c语言中直接调用库函数即可,具体如下:
#include<intrins.h> // 声明了void_nop_(void);
_nop_(); // 产生一条NOP指令。
该函数的作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当信乱游汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。
⑶ 单片机C语言编程,要使用C语言自带的库函数,使用哪个宏包含命令
使用#include调用库函数。
C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。
C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。
单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言。