![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式固件开发
文章平均质量分 65
潇潇然c
这个作者很懒,什么都没留下…
展开
-
嵌入式固件开发之一——安装MDK集成开发工具及软件包导入
1 安装MDK集成开发工具及软件包导入下载MDK集成开发环境安装包。可在http://www2.keil.com/mdk5/install页面中找到下载链接,进行下载。 双击MDK524a.exe,运行安装程序(注意关闭杀毒软件),按照下面的步骤进行安装。点击“Next”。勾选“I agree …”,点击“Next”。设置好安装目录,点击“Next”。根据自己的...原创 2019-02-10 10:35:52 · 2560 阅读 · 0 评论 -
嵌入式固件开发之二——直接操作STM32寄存器的LED点灯测试程序和仿真
2 直接操作STM32寄存器的LED点灯测试程序2.1 创建并编译工程双击桌面上的“Keil uVision5”图标,启动MDK。点击“Project”->“New uVision Project…”菜单项,打开工程创建向导。选择工程目录,设置工程名字,点击保存。在接下来的对话框中选择对应的SoC,点击“OK”。在接下来的对话框中选择最基本的运行时软件组件...原创 2019-02-10 10:54:04 · 1448 阅读 · 0 评论 -
嵌入式固件开发之三——使用Proteus仿真LED
3 使用Proteus仿真LED3.1 安装Proteus运行Proteus安装程序(8.7sp3)选择使用本地的Key添加Key选择自定义安装 用crack目录下的文件替换安装目录下的文件,启动程序,看到下面的信息表示成功。3.2 创建Proteus工程并仿真右键单击桌面图标“Proteu...原创 2019-02-10 11:07:31 · 2901 阅读 · 1 评论 -
嵌入式固件开发之四——重新组织MDK工程
4 重新组织MDK工程将LED作为驱动代码单独提取出来,划分到驱动的层次中。首先编写led.h文件,来定义类型和接口,代码如下。#ifndef LED_H#define LED_Htypedef enum led_num{ LED0, LED1} led_num_t;void led_init(void);void led_on(led_num_t num...原创 2019-02-10 11:21:49 · 659 阅读 · 0 评论 -
嵌入式固件开发之五——直接操作STM32寄存器的UART测试程序(实现printf)和使用VSPD仿真
5直接操作STM32寄存器的UART测试程序(实现printf)和仿真5.1 串口代码串口管脚功能配置请参考下表。uart.h#ifndef USART_H#define USART_Hvoid usart_init(void);void usart_send(int c);int usart_recv(void);#endifuart.c#in...原创 2019-02-10 17:19:21 · 583 阅读 · 0 评论 -
嵌入式固件开发之六——调用库接口函数实现ADC和仿真
6 调用库接口函数实现ADC和仿真6.1 CMSIS从前面的串口程序可以看出,随着硬件复杂程度的增加,寄存器也相应的增加了不少。这意味着开发者要阅读更多的数据手册内容才能编写出相应的代码来,学习的成本越来越高。另一方面,在一个MCU上的代码通常是很难直接用到另一个不同型号的MCU上的,特别是在厂家不同的情况下,这意味这代码的复用性很差。这是之前的嵌入式软件开发的一个通病。自ARM推出Cor...原创 2019-02-10 21:03:49 · 745 阅读 · 0 评论 -
嵌入式固件开发之七——使用STM32CubeMX自动生成代码的PWM实现和仿真
7 使用STM32CubeMX自动生成代码的PWM实现和仿真7.1 STM32CubeMX介绍及安装上一节我们调用了软件包中的函数库来完成了ADC代码,虽然比直接阅读芯片手册,通过挨个操作寄存器来进行编程要方便了许多,但你仍会发现,要写出合适的初始化代码并不容易。身为程序员的你,肯定还想要更简便和直观的方式来实现这些代码。那么,是时候祭出我们的终极武器了,他就是——STM32CubeMX。...原创 2019-02-13 22:02:09 · 1850 阅读 · 0 评论