当前位置:首页 > > 充电吧
[导读]一、MDK安装           MDK 是一个集代码编辑,编译,链接和下载于一体的集成开发环境( KDE )。MDK 这个名字我们可能不熟悉,但说到 KEIL ,学过 51 的朋友就再熟悉不过了。


一、MDK安装   

        MDK 是一个集代码编辑,编译,链接和下载于一体的集成开发环境( KDE )。MDK 这个名字我们可能不熟悉,但说到 KEIL ,学过 51 的朋友就再熟悉不过了。后来 KEIL 被 ARM 公司收购之后就改名为 MDK 了,所以学过 51 的朋友是很快就可以熟悉这个开发环境的。安装完 MDK 开发环境后,在下载程序的时候会有 40K 的代码限制,我只需要和谐下即可搞定:)。KEIL_Lic.exe,点击 KEIL_Lic.exe ,在弹出的界面中的 CID 选项框中填入 MDK 的 CID( MDK 的 CID 在 MDK 开发环境中的菜单栏 FileLicenseManagemant  中获取到),在Target 下拉框中选择 ARM ,然后点击 Generate 按钮,复制产生的 CID Code ,然后回到 MDK 开发环境中的菜单栏 FileLicenseManagemant  中,把刚刚在注册机复制到的CID Code 粘贴到 New License ID Code(LIC): 框中,然后点击 Add LIC ,,点击 close, 大功告成 :)

 

二、用到的一些小工具

1、amo的编程小工具集合:我平时编程和设计时常用的小工具集合。

2、Axialis IconWorkshop(图标制作软件)

3、C2B转换助手 V1.1

4、CH340驱动(USB串口驱动)_XP_WIN7共用

5、GIF2BMP

6、JLINK驱动

7、MDK5

8、PCtoLCD2002完美版——字模软件

9、winhex

10、SSCOM——串口调试助手

11、网络调试助手V3.8.exe——网络调试助手

 

三、硬件资源(野火STM32开发板)

1、CPU—— STM32F103ZET6:32位微控制器,cortex M3架构,512KFlash,64KRAM,72MHZ主频,3个12位A/D转换器,1个12位D/A转换器,12通道DMA(支持定时器/ADC/DAC/SDIO/I2S/SPI/I2C/UART),144引脚,112个快速IO口,11个定时器,2个I2C,5个UART,3个SPI,CAN接口,SDIO接口,USB

2、JTAG:20pinJTAG下载口

3、RTC:带点池的RTC电池座

4、I2C  EEPROM: —— AT24C02

5、SPI:2M FLASH W25X16(兼容W25Q16)

6、SDIO:TF卡接口

7、以太网:ENC28J60(10M) + HR911105A(网络变压器)

8、RS232:UART

9、RS485:6LBC184,引出485A与485B端子

10、CAN:收发器TJA1050,引出CANH和CANL

11、AD/DA:

12、PWM:

13:液晶接口:

14、摄像头接口:OV7725模块

15、三轴加速接口:MMA7455模块

16、无线接口:2.4GNRF24L01 + 模块

17、音频接口:MP3模块

18、zigbee接口:CC2530

19、WIFI接口:Mxchip EMW系列

 

四、库开发—— STM32 3.5版库

        STM32 库是由 ST 公司针对 STM32 提供的函数接口,库是架设在寄存器与用户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口。

1、core_cm3.c文件

        CMSIS 标准的核内设备函数层 的 M3 核通用的源文件 core_cm3.c 和头文件 core_cm3.h,它们的作用是为那些采用 Cortex-M3 核设计 SOC 的芯片商设计的芯片外设提供一个进入 M3 内核的接口。这两个文件在其它公司的 M3 系列芯片也是相同的。

        core_cm3.c 文件还有一些与编译器相关条件编译语句,用于屏蔽不同编译器的差异。里面包含了一些跟编译器相关的信息,如: RealView Compiler(RVMDK), ICC Compiler (IAR), GNU Compiler。所有 CM3 芯片的库都带有这个文件。

2、system_stm32f10x.c文件

        设置系统时钟和总线时钟, M3 比 51 单片机复杂得多,并不是说我们外部给一个 8M 的晶振, M3 整个系统就以 8M 为时钟协调整个处理器的工作。我们还要通过 M3 核的核内寄存器来对 8M 的时钟进行倍频,分频,或者使用芯片内部的时钟。PLL锁相环。

3、stm32f10x.h文件——底层文件

        处理器厂商都会将对内存的操作封装成一个宏,即我们通常说的寄存器,并且把这些实现封装成一个系统文件。

4、启动文件——选择startup_stm32f10x_hd.s。

cl:互联型产品,stm32f105/107 系列
vl:超值型产品, stm32f100 系列
xl:超高密度(容量) 产品, stm32f101/103 系列
ld:低密度产品, FLASH 小于 64K
md:中等密度产品, FLASH=64 or 128
hd:高密度产品, FLASH 大于 128

启动文件是一段汇编程序,建立合适的环境。作用:

(1) 初始化堆栈指针 SP;

(2) 初始化程序计数器指针 PC;

(3) 设置堆、栈的大小;

(4) 设置异常向量表的入口地址;

(5). 配置外部 SRAM 作为数据存储器(这个由用户配置,一般的开发板可没
有外部 SRAM);

(6) 设置 C 库的分支入口__main(最终用来调用 main 函数);

(7) 在 3.5 版的启动文件还调用了在 system_stm32f10x.c 文件中的SystemIni() 函数配置系统时钟。

5、inc/src文件夹

        CMSIS 的设备外设函数,基础外设的驱动文件。—— 库函数

         一个特别的文件misc.c文件:提供了外设对内核中的 NVIC(中断向量控制器)的访问函数,在配置中断时用到。

6、stm32f10x_it.c、 stm32f10x_conf.h文件

         stm32f10x_it.c:编写中断服务函数,定义了部分中断接口。

         stm32f10x_conf.h:配置使用了什么外设的头文件,用这个头文件我们可以很方便地增加或删除外设驱动函数库。

7、库文件间的关系





本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭