stm8c语言库函数 stm32f103c8t6库函数例程

STM8的初始化里面 while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSE)这个什么意思

首先,你要明白STM8的驱动时钟可以采用外部晶振,也可采用STM8内部的RC振荡器,二者只能选其一。 三个语句中的HSI表明是采用内部RC振荡器。

成都创新互联公司,专注为中小企业提供官网建设、营销型网站制作、响应式网站设计、展示型网站设计制作、成都网站设计等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。

你先看STM8内部的时钟树结构:

其中HSI RC 16MHz就是其内部含有的RC振荡器,是ST芯片在出厂前就经过校正的但有一定误差的振荡器。时钟经过HSIDIV[1:0]这个分频器,可以获得16MHz、8MHz、4MHz、2MHz的输出tHsiDIV,该输出经过Master Clock Switch(通过配置来选择外部晶振还是内部晶振)后,再分配到CPU时钟和外围设备时钟。

因此,STM8可以运行的时钟频率最大可以达到16MHz,你也可以让它低于这个频率运行(有利于低功耗设计)。搞清楚了以上几点,可以知道第一句是配置STM8,让它知道用内部RC振荡器,不要用外部晶振,这样省了一个晶振的钱[成本降低了嘛:)],第二句是让内部振荡器的输出进行8分频,你也可以让它1分频、2分频、4分频,但不能3分频、5分频,因为它内部只设计了这几种分频,况且奇数分频很难实现,你学过数字电路就应该知道。然后第三句话你要看一下库函数的定义

CLK_Source_TypeDef   CLK_GetSYSCLKSource(void)

{

return((CLK_Source_TypeDef)CLK-CMSR);

}

意思是返回寄存器CMSR的值,这个你就要参考一下《STM8S中文参考手册》了,里面搜索CMSR这个词,我的是在第54页,

看到了吗?它是表明时钟准备好了没有的状态标志,就像你去叫别人办事,别人要经过考虑,这就需要等待,同理,你在STM8S内部配置好了时钟后,内部需要产生一定的延迟,而且受各种状况的影响,比如外部供电电压变化、引脚干扰等,有可能导致配置时钟失败,这就要经过查询这个寄存器的值来看是否配置好时钟没有,如果这个寄存器不等于0,则配置成功,否则失败。第三句的while里的意思就是不断地取CMSR的值,看是否等于宏定义CLK_SOURCE_HSI(OXE1),如果相等了,则跳过循环,继续执行以后的语句。

STM8单片机有MATH函数吗,冥函数怎么做运算

math是C语言库函数,跟单片机类型关系不大,只要编译器支持C语言,就可用这个库

stm8用库函数初始化GPIO引脚,与stm32调用库的方式不一样?

#define Relay1 GPIO_PIN_2

#define Relay2 GPIO_PIN_3

GPIO_Init(GPIOA,(GPIO_Pin_TypeDef)(Relay1|Relay2),GPIO_MODE_OUT_PP_LOW_SLOW);

用宏定义可方便以后修改

STM8S系列单片机如何使用printf函数

这跟单片机没关系,这是C语言的库函数

使用时只需将 putc函数(被printf函数调用)换成串囗发送函数即可,换了之后优先调用用户编写的putc函数

新闻标题:stm8c语言库函数 stm32f103c8t6库函数例程
当前网址:https://www.cdcxhl.com/article30/ddigjso.html

成都网站建设公司_创新互联,为您提供移动网站建设网站设计公司建站公司营销型网站建设品牌网站建设企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作