【技术】CW32F030C8T6时钟单片机启动以及库函数构成

2023-10-01 CW32生态社区公众号
单片机,时钟单片机,CW32F030C8T6,武汉芯源 单片机,时钟单片机,CW32F030C8T6,武汉芯源 单片机,时钟单片机,CW32F030C8T6,武汉芯源 单片机,时钟单片机,CW32F030C8T6,武汉芯源

本章为时钟单片机CW32F030C8T6时钟的参考资料,面向初学者。


第一部分:默认时钟和启动文件

单片机内部基本由内核、总线、外设组成,这三部分作为数字电路,都需要开发者提供时钟信号才能正常工作。所谓时钟信号,就是周期脉冲信号,由电路分析可知RC振荡电路可以产生稳定的脉冲,故单片机的时钟信号可以由RC振荡器提供。但是RC振荡器提供的时钟信号质量不高,而晶体振荡器依靠压电效应提供稳定的、高质量的时钟信号。


以CW32F030C8T6单片机为例,他拥有2个内部振荡器,并且可以使用外部振荡器输入的脉冲信号作为时钟。先说内部振荡器,有HSI(高速-high speed、内部-internal)和LSI两个震荡器,这两个振荡器均为RC振荡器,可以通过配置相关的寄存器来调整输出频率,一般单片机启动的时候都会使用内部振荡器提供的时钟,这种RC振荡器启动速度很快,价格低廉,非常时候作为启动时钟。内部低速振荡器一般不作为内核运行的时钟,而是作为部分外设的时钟,如rtc定时器(实时时钟)和看门狗。


对于此款单片机,可以通过下述办法来判断单片机上电之后的行为,提示:一般单片机上电之后都会配置主要的时钟参数,但配置之后工作状态不同,后文会有对比。

1.找到单片机的启动文件,启动文件以“.s”后缀出现,意为start_up。


2.启动文件由汇编语言编写,单片机启动一定会从启动文件开始,而不是C语言下的main函数。


3.下图为启动文件截图。


4.在上方文件中找到那个叫SystemInit的东西,这是个函数名字,一般来讲都可以在厂商提供的库函数中找到,cw32的在下面这个图的文件里


5.在执行完SystemInit函数的这三行代码之后,单片机会正常跳转到main函数开始执行,就像启动文件里面写的那样。


至此,启动文件主要部分及系统默认的上电时钟已讲解完。


如果你看不懂C语言,那就去补习C语言。


如果你看不懂为什么这是在操作寄存器,下一部分会教你如何看寄存器。


第二部分:库函数和寄存器

我们都知道计算机编程最早使用的是机器语言,也就是用打点纸带来编程,后续出现了汇编语言,使用助记符来辅助编程,再到后来的C语言,高级语言诞生,软件开发变得更加简单。但是到计算机这一层,他依然是使用的数字电路来工作的,至少,开发者需要操作的东西就算不是数字电路,也是个寄存器。


计算机发展中,寄存器被人们用“地址”这个东西来标号,翻开编程手册(单片机至少有三个手册是开发者需要看的,分别是:data_sheet \user_program_guide \core_program_guide),你会发现每个寄存器都会有一个地址,到目前为止,32位单片机拥有非常多的寄存器,这些寄存器地址已经不会再用最直接的地址累加形式显示出来(如0x00,0x01,0x02........)。稍微高级一些的单片机都会使用基地址+地址偏移量的形式指示寄存器的地址,如下图所示:


如果开发者想要使用位于SYSCTRL这个寄存器组下的分寄存器,如总线时钟或是PLL时钟,就需要用基地址+地址偏移量的方式找到这个寄存器,并赋值寄存器来配置。所谓地址偏移量,就是这个寄存器有多少字节的容量,32位单片机就是4字节,所以地址偏移量基本上就是4字节步进来累加的,某些情况会有多个寄存器一起负责一个功能的情况,这个时候偏移量要酌情理解。


那地址代表了寄存器,地址和库函数有什么联系?C语言最精髓的东西是什么?那必然是指针,指针就用的是这种“以地址指示参数位置”的办法,所以你可以在库函数看到如下一系列的宏定义:


上面那个东西又会被定义成开发者可以直接操作的寄存器。


有朋友肯定会问,这里只有一个基地址,为什么可以用CW_SYSCTRL->REG的形式操作很多寄存器呢?


由于每个寄存器都是32位的,也就是4字节,由C语言联合体和结构体的特性,内部的地址是基地址累加的,只需要一个寄存器累加固定的偏移量,就能把结构体成员和单片机内的寄存器一一对应起来,这就是寄存器与库函数的联系。


一旦想通寄存器和库函数是怎么联系起来的,单片机编程就会变成一个非常简单的事情,因为库函数本质上就是在用地址操作去赋值、改写寄存器,全世界的单片机库函数都是如此。在任何时候,开发者都可以通过直接赋值寄存器的办法去完成自己期望的配置。


现在我们回头看cw32系统初始化函数的最后两行,最开始的就是基地址指针,这个是一个结构体指针,结构体由很多联合体构成,指针选择结构体成员,结构体成员是联合体,所以用‘.’的方式选择了TRIM成员进行赋值,赋的值就是等号右边的部分。


细说等号右边的含义。RCC是一个十六进制数,他被强制转化为了16位指针类型,并在赋值之前解引用被变成了本身的值,即前文提到的十六进制数,根据编程手册,这个十六进制数表示了RC振荡器对应48MHz输出的校准值。



至此,关于第二部分的寄存器-库函数联系已讲解完成,如有错误或遗漏,欢迎指正和补充。


总结:

1.单片机启动并不是从main函数开始执行的,而是从启动文件规定的函数开始执行的

2.大部分单片机都会上电自动配置时钟保证单片机能够正常工作

3.寄存器和库函数通过地址这个东西联系在一起,库函数本质就是在操作寄存器

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由叫我大表哥吧转载自CW32生态社区公众号,原文标题为:【有那么点详细的CW32学习笔记】单片机启动&库函数构成,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【技术】武汉芯源CW32单片机UART基本数据收发功能介绍

通用异步收发器是一种通用串行数据总线,常用于系统内各子模块间的数据交换。本文将以武汉芯源推出的CW32系列单片机的CW32L083为例,介绍UART基本数据收发功能。

技术探讨    发布时间 : 2023-04-25

解析CW32单片机的独立看门狗IWDT和窗口看门狗WWDT

看门狗在那些对安全性和稳定性要求较高的应用中特别重要,如工业控制、汽车电子、医疗设备和航空航天等领域。通过使用看门狗,可以大大减少系统因软件故障而导致的长时间不可用或错误操作的风险。本文介绍CW32单片机的两个看门狗:独立看门狗IWDT和窗口看门狗WWDT。

技术探讨    发布时间 : 2024-08-17

电池采样电路为什么测量结果不对?

这个是上周群友在群里描述的问题,也算是很经典很容易犯的错误。所以再三分享给大家,希望大家注意。下面是群友的问题:问题一:通过万用表测量发现,电压跟随器输出的电压和电阻分压点的电压对应不上,但是电压跟随器输出的电压和理论计算值基本对应得上。问题二:单片机采集回来的电压比电压跟随器输出的电压要高一些,且不同板子读回来的数据也不一样。

技术探讨    发布时间 : 2024-07-09

【经验】芯源CW32系列单片机低功耗模式介绍及UART深度休眠模式示例

CW32单片机低功耗模式介绍及UART深度休眠模式示例。

设计经验    发布时间 : 2023-05-31

2023年电赛A题——国奖开源分享

根据题目要求,本项目拟设计制作一个单相逆变器并联运行系统,本系统以CW32F030C8T6核心板为控制核心,由直流电源、隔离变压器、全桥逆变电路、采集电路、驱动电路、LC低通滤波电路和辅助电源组成。从机采用DQ锁相环进行相位追踪,通过生成双极性SPWM波对全桥逆变电路调制,产生正弦交流电。利用PID算法进行电流、电压闭环控制,逆变器实现稳流,稳压来实现并联,并网运行。

原厂动态    发布时间 : 2023-12-26

【CW32模块使用】微波多普勒无线雷达传感器

由于微波传感器检测对象存在普遍性,在实际的生活应用中,会搭配另一个传感器来做针对性的检测。如微波传感器+红外热释电传感器,能够有效的判断是否有人经过,不会被阳光,被衣物颜色所干扰,也不会对其他物体产生反应。本次示例的目标是将例程移植至CW32F030C8T6开发板上【能够判断测量一定距离内是否物体运动】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。

设计经验    发布时间 : 2024-11-15

武汉芯源半导体邀您相约CITE2024中国电子信息博览会

CITE2024第十二届中国电子信息博览会将于2024年4月9-11日在深圳福田会展中心隆重开展,武汉芯源半导体将为电子行业参观者展示智能指纹锁、麦克风、燃气表、LED调光板、可燃气体报警器、筋膜枪、角磨机、血氧仪、温控器、BLDC无刷电机、永磁同步电机无感FOC控制方案等多款CW32单片机典型应用方案,诚邀您莅临9B122武汉芯源半导体展位参观交流!

原厂动态    发布时间 : 2024-04-05

【应用】基于国产32位MCU芯片CW32F030C8T6的智能门锁方案,主频64MHz,具备低功耗多功能优势

智能门锁集成3D识别算法、接近检测、指纹输入模块,低功耗计算芯片等于一体,解锁快、功耗低、续航久,现武汉芯源推出一款MCU芯片CW32F030C8T6助力于智能门锁设计。

应用方案    发布时间 : 2023-03-14

【CW32模块使用】SHT30温湿度传感器

SHT30是一款IIC通信的温湿度传感器,支持-40~125℃温度和0~100%RH湿度测量,精度高。通过移植例程至CW32F030C8T6开发板,实现了每秒读取温湿度并通过串口输出的功能。

设计经验    发布时间 : 2024-11-08

基于CW32的无刷直流空心杯电机有感控制驱动方案

空心杯电机(Hollow-Cup Motor)是一种特殊类型的微型无刷直流电机,具有空心的旋转部分。它通常由外部固定的外壳和内部旋转的空心杯组成。空心杯电机具有较高的功率密度和扭矩输出,适用于一些特定的应用场景,如精密仪器、机器人、医疗设备等。空心杯电机的工作原理是基于无刷直流电机的原理。它采用无刷电机的结构,包括定子(固定部分)和转子(旋转部分)。

应用方案    发布时间 : 2024-05-16

武汉芯源CW32系列单片机数字电压电流表产品硬件设计指南

本文基于武汉芯源CW32系列单片机,介绍数字电压电流表产品硬件设计指南,希望对各位工程师有所帮助。

设计经验    发布时间 : 2024-06-20

Application of CW32F030 in LED PWM Dimming Control Board

The MCU application introduced this time is based on the PWM output control of a microcontroller. Through the RC hardware circuit, a timer combined with software is used to achieve PWM output control with adjustable duty cycle and fixed cycle. The general process is to use a potentiometer to change the duty cycle, and through AD conversion, the duty cycle of the PWM square wave is sent to the LED for display.

应用方案    发布时间 : 2024-11-08

【经验】基于CW32的超声波模块的应用

C-SR04超声波模块是一种常用的测距模块,其通过发射超声波并接收其反射信号来实现测距功能。具有成本低、精度高、使用简便等特点。本实验用到了CW32F030C8T6小蓝板、0.96寸OLED显示屏、HC-SR04超声波模块及Keil5开发环境。

设计经验    发布时间 : 2023-09-26

CW32 is a Low-power 32-bit Microcontroller, Using Arm Cortex-m0+core, Very Suitable for Intelligent Temperature Controllers with Low Power Consumption Requirements

The CW32 designed by Wuhan Xinyuan Semiconductor Co., Ltd. using ARM Cortex-M0+core is a low-power 32-bit microcontroller, currently used in temperature controllers such as air conditioning, floor heating, water heating, and electric heating.

应用方案    发布时间 : 2024-11-08

基于CW32的无刷直流空心杯电机无感方波控制驱动方案

本方案采用CW32F030C8T6作为主控芯片,采用无感方波控制算法控制无刷直流空心杯电机。CW32F030C8T6是一款高性能、低功耗的32位微控制器,具有丰富的片上外设资源,可以适合用于电机控制。无感方波控制算法是一种简单有效的电机控制算法,不需要使用霍尔传感器,可以降低硬件成本。

应用方案    发布时间 : 2024-04-23

展开更多

电子商城

查看更多

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥2.1667

现货: 291,270

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 95,058

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.2667

现货: 78,187

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.1667

现货: 36,712

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.1667

现货: 26,123

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.1718

现货: 14,132

品牌:SILICON LABS

品类:32位MCU

价格:¥24.8076

现货: 10,000

品牌:SILICON LABS

品类:8b Wireless MCU

价格:¥7.2474

现货: 9,039

品牌:SILICON LABS

品类:32MCU

价格:¥57.6978

现货: 6,379

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:RENESAS

品类:MCU

价格:¥5.8041

现货:86,925

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥257.6400

现货:58,799

品牌:RENESAS

品类:MCU

价格:¥25.3732

现货:42,346

品牌:RENESAS

品类:microcontroller

价格:¥32.9564

现货:40,179

品牌:RENESAS

品类:MCU

价格:¥19.4999

现货:39,718

品牌:RENESAS

品类:MCU

价格:¥39.8484

现货:38,160

品牌:RENESAS

品类:MCU

价格:¥78.9058

现货:34,935

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

3C认证/CCC认证

支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。

提交需求>

工控触摸一体机定制

提供7~27寸工控机定制,支持嵌⼊式/ 壁挂式 /桌⾯式/悬挂式等安装方式,采用纯平⾯板IP65防尘防⽔等级,莫⽒7级硬度触摸屏,兼容多种操作系统:组态软件/安卓/XP/win7/8/10/Linux等,支持主板、接⼝、外观、⽀架、刷卡器、⾝份证阅读器、LOGO、⻨克⻛、系统、电池、蓝⽛、4G/5G、摄像头、GPS系统、⼆维码扫描器、指纹等特殊应⽤场景定制

最小起订量: 1台 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面