您的位置 首页 数字

带32位MCU和高精度ADC的SoC产品—-SD93F系列开发攻略(一)

带32位MCU和高精度ADC的SoC产品—-SD93F系列开发指南(一)-示例程序是以SD93F115-JBS芯片编写,包含了按键中断、RTC中断、SD ADC、SAR ADC、RTC、DAC、低压检测、LCD显示、休眠测试等多个基础功能综合的一个程序,配合按键中断进入不同的子程序进行演示。

前 言 01

您在运用新款芯片和新的开发环境进行开发的过程中是否会遇到以下问题:怎么快速建工程?怎么快速上手编程?不了解芯片功用?完结功用和预期不符?

本开发攻略将手把手帮工程师们处理以上问题,了解芯片的各个模块,对照手册了解各个模块的寄存器装备。一起,共享一些常见的过错用法,防止您走一些弯路,然后进步开发功率。

程序描绘 02

示例程序是以SD93F115-JBS芯片编写,包含了按键中止、RTC中止、SD ADC、SAR ADC、RTC、DAC、低压检测、LCD显现、休眠测验等多个根底功用归纳的一个程序,合作按键中止进入不同的子程序进行演示。

附件SD93F115-JBS_TEST.zip 是现已编写好的示例程序,其主体思路:先对芯片进行体系初始化,再对需求运用的功用进行装备,然后进入主循环经过按键中止挑选置起相应的测验标志位,进入相应的测验项完结功用演示。

终究依照《软件篇》的办法将程序下载至芯片中。

main 函数 03

main函数的全体结构,如图3-1:

pYYBAGIURxaADyrlAAT6dus-o4o929.png

图3-1 main函数

如上图所示,main函数首要运转的是Sys_MyInit()体系初始化,由于芯片上电后的默许状况下根本只要IHRC和ILRC在作业,大部分的外设都需求翻开对应时钟后,才能够重新装备相应模块,后期自行开发时有需求用到的外设可参照运用手册13.7节–时钟与复位寄存器优先敞开时钟。

由于IHRC是校准过的,只需从RCC_IHRC_CLBR寄存器将校准数据存入RCC_IHRC_CR寄存器即可完结校准动作,模仿部分电源BG、ACM和AVDDR默许上电是封闭的,后续也会用到,直接调用库函数翻开,完结对芯片的开始装备。如下图3-2所示:

poYBAGIURx-AdETUAAJS-LIDfsI338.png

图3-2 体系初始化函数

体系初始化之后,进行FLAG_Init()标志位初始化,该函数里的标志位是自界说的一些变量,在后续程序履行时会运用到,而在初始运转函数时,这些变量可能是随机数据,需求进行变量清零。如下图3-3所示:

poYBAGIURy-AbaZjAANZJINh6kE956.png

图3-3 自界说标志位初始化函数

自界说标志位初始化之后,为确保程序运转正常,在编写其他函数前,需求先编写一个IWDG_Init()独立看门狗初始化函数(脱离主函数独自计数的一个寄存器,归于硬件领域),它能在程序跑飞的情况下,复位芯片,使程序重新开始运转。独立看门狗结构图如下图3-4:

poYBAGIURzmAO9Q1AACwJJ4a4SE434.png

图3-4 独立看门狗结构图

从结构上看,独立看门狗是以低频时钟ILRC的分频为时钟源,当WDT_COUNTER计数时刻超越设置值时溢出,芯片便会产生中止或复位,留意一旦独立看门狗使能后软件就无法封闭IWDG和ILRC,除非产生复位。独立看门狗初始化函数如图3-5所示:

pYYBAGIUR0GAc8WAAAGhHnxGdcA953.png

图3-5 独立看门狗初始化函数

这儿直接调用库函数,将独立看门狗预分频器设置8分频,溢出时刻设置为23040,终究敞开看门狗挑选正常形式作业,待机形式不作业,在此装备下核算的复位时刻t=5.76秒。由于敞开了独立看门狗,但又不期望程序在正常运转时产生复位,所以需求在正常运转的程序期间参加‘喂狗’操作,防止芯片在正常情况下复位,尤其是在履行循环过程中需求特别留意进行‘喂狗’操作,主张溢出时刻不要设的太小。独立看门狗初始化后,还对按键中止、PWM、SD ADC、SAR ADC、UART、RTC和LCD显现等功用也进行了初始化,在后面的章节会具体介绍。为了更直观的看到程序是否正常运转,先在LCD屏上显现‘123456’,然后用一个GPIO做数字输出来驱动外部LED灯进行闪耀,GPIO初始化如下图3-6:

poYBAGIUR0uAeJN5AAboyZ3kO6M829.png

图3-6 GPIO初始化函数

首要翻开GPIO外设时钟使能,将P83口设置为数字输出,装备为大电流形式(最大电流能够到达12mA),为防止其他GPIO引脚悬空形成不知道影响,将一切没有运用的GPIO悉数装备为输入上拉形式。宏界说了P83引脚的输出,使得操控LED灯的状况更清楚,然后在main函数的while循环里每隔50ms把P83状况翻转,即可操控LED灯的亮灭,终究程序运转PCB板的开始现象便是LCD显现‘123456’,LED灯不断闪耀,等候按键中止的降临。

poYBAGIUR1SAVTguAAMLKzdkq4Y441.png

图3-7 P83引脚输出宏界说

总 结 04

本文介绍了Main函数的全体运转流程,要点在于编程时要优先敞开需求运用的外设时钟,再合作库函数的运用能够有用削减开发过程中遇到的问题,芯片的其他功用将会在后续章节逐个共享。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/342859.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部