教程:只需六步,将Hal库移植到标准库

机智云开发者 2018-06-12 10:10 次阅读

手头上正好有STM32的开发板和ESP-12E模块,想着控制个WS2812玩玩。到MCU开发的时候下载了生成的代码发现是HAL库的,无奈自己刚刚学习stm32,用的是标准库这里参考了官方的移植MSP340教程并修改出适用于STM32标准库的教程。

步骤1、下载好的代码包是这样的,需要把这两个文件夹直接复制到自己工程的文件夹里面:

步骤2、添加到自己的工程组里面,并添加路径:

步骤3、正题来了,现在开始移植工作,需要修改的文件分别如下:3.1、打开gizwits_product.h 需要修改的地方如下,查看代码行数可以快速找到)

3.2、打开gizwits_product.c,需要修改的地方如下:

下面删除的几个初始化函数很重要...必须自己写好,要能正常使用

接下来是串口发送函数,我用的是DMA+中断发送接收的,修改成能发送数据的函数..建议先把串口功能调试好在填入调用

int32_t uartWrite(uint8_t *buf, uint32_t len)

{

uint32_t i = 0;

if(NULL == buf)

{

return -1;

}

for(i=0; i

{

//这里填入串口发送函数

TxBuff_esp8266[i]=*buf++;

/* if(i >=2 && buf[i] == 0xFF)

{                        

//这里填入串口发送函数,发送0x55,意思是遇到0xFF后面要加0x55

//这地方折腾了很久才成功,官方的大神说要加上,但是我删除了也可以用,求解释

//官方说是要求加上的..我直接删除了也能用,你们要是这里加了不行的话也删掉试试

}*/

修改好了记得保存。

步骤4、接下来打开main.c文件添加自己的初始化代码,并且调用gizwits的相关函数记得把这两个头文件包含进去

#include "gizwits_product.h"

#include "common.h"

我的初始化函数是自己封装的,比较简陋,反正功能能实现就行了步骤5、修改中断函数

接下来就是编译了,要是有错误的地方看一下是不是外部函数调用的时候没有包含进函数所在的头文件。步骤6、打开gizwits_product.c,找到gizwitsEventProcess的函数,下面那里有你添加的数据点,可以添加自己想要的功能。

举个栗子我的是控制WS2812,直接在里面调用WS2812的亮灯函数,把读到的数据颜色数据填入就可以了

移植的步骤大概就是这么多,试了一下烧录了进去确实可以用app控制。还有很多功能没有调试,剩下的功能要去参考其他大神的了。静静的做一名的伸手党。

要是有什么错误的地方请指正,我也是这两天刚刚琢磨出来,希望能互相学习。诶,那个,第一次写教程,stm32也刚接触没多久,水平有限,有什么写得不好或者错了的地方请告之改正。

原文标题:官方生成的MCU代码(hal库)移植到标准库的STM32教程

文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

零死角玩转STM32+初级篇+中级篇+系统篇分享

零死角玩转STM32+初级篇+中级篇+系统篇
发表于 01-16 16:29 10次 阅读
零死角玩转STM32+初级篇+中级篇+系统篇分享

没有连接ST-linker/v2调试器时没有操作

您好,我是STM8S用户。 我的问题是为什么没有连接st-link调试器时mcu没有操作。 如果我正在下载mcu中的Hex文件,那么mcu正...
发表于 01-16 15:52 5次 阅读
没有连接ST-linker/v2调试器时没有操作

重庆妹子急求STM32F103两轴定位控制步进电机难题,忘大神不吝赐教

想要用STM32F103做一个项目: 用两个能同时运动的步进电机控制小车,一个为X轴,一个为Y轴,要求小车通过扫描传感器的方式...
发表于 01-16 14:49 12次 阅读
重庆妹子急求STM32F103两轴定位控制步进电机难题,忘大神不吝赐教

嵌入式MCU和计量IC组合解决方案

嵌入式功率计或分表为各种产品提供能源监控功能,如智能插头,家用电器和其他耗电设备。对于产品设计人员而....
的头像 电子设计 发表于 01-16 09:10 140次 阅读
嵌入式MCU和计量IC组合解决方案

反电势检测电路检测信号异常

项目(控制bldc)需要焊接了一块简单的反电势检测电路,说它简单是因为就采取了最简单的分压电路,无二极管,也无电容滤波,因为...
发表于 01-16 08:24 60次 阅读
反电势检测电路检测信号异常

请问为什么在Preprocessor symbol中不添加STM32F10X_CL也不会抱错呢?

我用的处理器是STM32F107VCT6 在stm32f10x.h文件中看到如下内容: #if !defined (STM32F10X_LD) && !defined (S...
发表于 01-16 08:09 56次 阅读
请问为什么在Preprocessor symbol中不添加STM32F10X_CL也不会抱错呢?

请问STM32F746内部调压器不工作是什么原因导致的

供电3.3V正常,内核电压引脚VCAP无电压,为0V,且VCAP有2.2uf电容接地,没有短路。将芯片取下后又焊接上去,又能重新工...
发表于 01-16 08:00 49次 阅读
请问STM32F746内部调压器不工作是什么原因导致的

NODE 单片机 ESP12的电路原理图免费下载

本文档的主要内容详细介绍的是NODE MCU ESP12的电路原理图免费下载
发表于 01-16 08:00 4次 阅读
NODE 单片机 ESP12的电路原理图免费下载

C8051F04x系列混合信号ISP FLASH微控制器数据手册免费下载

C8051F04x 系列器件是完全集成的混合信号片上系统型 MCU,具有 64 个数字 I/O 引脚....
发表于 01-16 08:00 8次 阅读
C8051F04x系列混合信号ISP FLASH微控制器数据手册免费下载

stm32F103CBT6配置成内部时钟,串口波特率错误

发表于 01-16 07:52 51次 阅读
stm32F103CBT6配置成内部时钟,串口波特率错误

请问stm32f4怎么用SPEEX进行编码

我想用SPEEX进行语音编码 可是一直进入的是内存错误中断是怎么回事? void MemManage_Handler(void) {   /...
发表于 01-16 07:49 37次 阅读
请问stm32f4怎么用SPEEX进行编码

stm32f407外部中断容易触发

我是刚刚学习stm32单片机的,在使用外部中断的时候遇到一个问题,单片机的IO口如果配置为输入模式,中断极其容易触发,手随便摸...
发表于 01-16 06:34 48次 阅读
stm32f407外部中断容易触发

stm32f051智能卡接口发送APDU指令不能接受到响应数据

在调试智能卡时参考了官网例程,能正确收到ATR序列,但是发送APDU指令始终不能接受到响应数据...
发表于 01-16 06:09 56次 阅读
stm32f051智能卡接口发送APDU指令不能接受到响应数据

IC如何破解微控制器MCU破解秘笈中文版免费下载

现今的半导体芯片不仅仅用于控制系统,而且还用于保护它们免于入侵的威胁。那些认识到当前失误而引入新的安....
发表于 01-15 16:12 9次 阅读
IC如何破解微控制器MCU破解秘笈中文版免费下载

STM32407ZGT6网络摄像头TCP工程源代码资料免费下载

本文档的主要内容详细介绍的是STM32407ZGT6网络摄像头TCP工程源代码资料免费下载。
发表于 01-15 08:00 9次 阅读
STM32407ZGT6网络摄像头TCP工程源代码资料免费下载

汽车电子发展4大趋势 英飞凌的三个应对案例

 英飞凌大约五年前就已决定了部分产品发展规划。因为半导体产品必须走在技术最前端,今天我们看到的技术,....
发表于 01-14 17:47 240次 阅读
汽车电子发展4大趋势 英飞凌的三个应对案例

在STM32H7上DMA传输异常案例分析

STM32微控制器提供工业标准Arm® Cortex®-M内核的性能,可运行矢量控制(VC)或磁场 ....
发表于 01-14 08:00 17次 阅读
在STM32H7上DMA传输异常案例分析

基于ARM架构的MCU选择有窍门

在过去,对任何给定指令集的支持只是选择过程中的一个重要元素,但是由于ARM,指令集的相关性可能已经变....
发表于 01-13 11:11 99次 阅读
基于ARM架构的MCU选择有窍门

STM32CubeMX将增加先进的人工智能AI功能

意法半导体借助STM32系列微控制器的市场领导地位,扩展了STM32微控制器开发生态系统STM32C....
的头像 嵌入式资讯精选 发表于 01-13 10:26 455次 阅读
STM32CubeMX将增加先进的人工智能AI功能

意法半导体联手Arilou 展示汽车MCU上的入侵检测和防御系统解决方案

近日,NNG集团旗下高端汽车网络安全解决方案提供商Arilou信息安全技术公司与横跨多重电子应用领域....
发表于 01-13 10:07 254次 阅读
意法半导体联手Arilou 展示汽车MCU上的入侵检测和防御系统解决方案

MCU设计中时钟控制模块的常用功能

由于微控制器激增到越来越多的权力受限的设计,加工效率成为越来越多的关注,以系统设计。
发表于 01-12 10:54 111次 阅读
MCU设计中时钟控制模块的常用功能

MCU未来的机会在中国,国产MCU厂商崛起打破垄断

当今的MCU市场,随着各大原厂的不断扩大收购合并与日新月异的创新,国内外自主研发IC的小型企业已明显....
的头像 OFweek工控 发表于 01-12 10:24 772次 阅读
MCU未来的机会在中国,国产MCU厂商崛起打破垄断

基于MDK的STM32处理器开发应用PDF电子教材免费下载

本书介绍了基于MDK的STM32处理器开发应用。全书共9章,分为4部分。第一部分为基础篇,在讲解Co....
发表于 01-10 15:42 41次 阅读
基于MDK的STM32处理器开发应用PDF电子教材免费下载

NB IOT模块系列BC35-G和BC28 AT命令手册资料免费下载

本文档详细介绍了Quectel NB IOT BC35-G和BC28模块支持的AT命令集。收到该字符....
发表于 01-10 08:00 44次 阅读
NB IOT模块系列BC35-G和BC28 AT命令手册资料免费下载

芯科科技发布最新版软件开发套件

获取Silicon Labs(亦称“芯科科技”)针对旗下的Sub-GHz、蓝牙(Bluetooth)....
的头像 SiliconLabs 发表于 01-09 15:40 343次 阅读
芯科科技发布最新版软件开发套件

MCU如何在扩展的SDRAM上运行程序

在使用MCU的嵌入式系统设计中,当程序或者数据内存占用太大而无法放入片上闪存或SRAM时,开发者通常....
的头像 RTThread物联网操作系统 发表于 01-09 15:19 256次 阅读
MCU如何在扩展的SDRAM上运行程序

串口数据转换CAN帧格式的方法及注意事项

该类模块可以很方便地嵌入到具有UART接口的设备中,在不需改变原有硬件结构的前提下使设备获得CAN-....
发表于 01-09 14:41 82次 阅读
串口数据转换CAN帧格式的方法及注意事项

TMS320F28076 TMS320F2807x Piccolo 微控制器

C2000™32位微控制器在处理,传感和驱动方面进行了优化,可提高实时控制应用中的闭环性能,例如工业电机驱动,光伏逆变器和数字电源,电动车辆与运输,电机控制以及传感和信号处理.C2000产品线包括Delfino™高端性能系列和Piccolo™入门级性能系列。 TMS320F2807x微控制器平台属于Piccolo™系列,适用于高级闭环控制应用,例如工业电机驱动,光伏逆变器和数字电源,电动车辆与运输以及传感和信号处理。数字电源和工业驱动器的完整开发包作为powerSUITE和DesignDRIVE方案的一部分提供。 F2807x是基于TI行业领先的C28x内核的32位浮点微控制器。此内核的性能通过三角运算硬件加速器得到了提升,该加速器利用CPU指令(如正弦,余弦和反正切函数)提高了转矩环路和位置计算中常见的基于三角运算的算法性能。 F2807x微控制器系列采用一个CLA实时控制协处理器.CLA是一款独立的32位浮点处理器,运行速度与主CPU相同。该CLA会对外设触发器作响响应,并与主C28x CPU同时执行代码。这种并行处理功能可有效加倍实时控制系统的计算性能。通过利用CLA执行时间关键型功能,主C28x CPU可以得到释放,以便用于执行通信和诊断等其...
发表于 01-08 17:49 16次 阅读
TMS320F28076 TMS320F2807x Piccolo 微控制器

STM32F103芯片资料介绍

只是STM32F103芯片资料的简单介绍,文章由(逆向开发技术网)编辑整理。下次我们将具体介绍一下”....
发表于 01-08 08:00 118次 阅读
STM32F103芯片资料介绍

使用Multisim中的MCU 8051制作的单片例程免费下载

本文档的主要内容详细介绍的是使用Multisim中的MCU 8051制作的单片例程免费下载。
发表于 01-08 08:00 47次 阅读
使用Multisim中的MCU 8051制作的单片例程免费下载

32位MCU异军突起 8位MCU何去何从

根据市调机构的分析数据指出,近年来尽管32位MCU异军突起,然而8位MCU每年依然占有全球MCU市场....
的头像 传感器技术 发表于 01-07 16:09 458次 阅读
32位MCU异军突起 8位MCU何去何从

可让MCU轻松实现低功耗的五大方法

低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特....
发表于 01-07 09:02 173次 阅读
可让MCU轻松实现低功耗的五大方法

STM32F427xx和STM32F429xx微控制器的详细资料概述

STM32f427xx和STM32f429xx设备基于高性能ARM®Cortex®-M4 32位RI....
发表于 01-07 08:00 35次 阅读
STM32F427xx和STM32F429xx微控制器的详细资料概述

意法半导体推出STM32神经网络开发工具箱

横跨多重电子应用领域的全球领先的半导体供应商意法半导体 (STMicroelectronics,简称....
的头像 嵌入式ARM 发表于 01-06 10:30 540次 阅读
意法半导体推出STM32神经网络开发工具箱

IAR开发EFM32单片机的一些经验和技巧

俗话说“工欲善其事、必先利其器”,为了能更好的开发ARM系单片机EFM32,熟练掌握一个或者多个ID....
发表于 01-06 09:42 118次 阅读
IAR开发EFM32单片机的一些经验和技巧

四个常用的集成电路浅析

ASIC原本就是专门为某一项功能开发的专用集成芯片,比如摄像头里面的芯片,小小的一片,集成度很低,成....
发表于 01-06 09:35 219次 阅读
四个常用的集成电路浅析

浅析MCU内部的RAM上电之后的初始值相关问题

首先我们明确一个问题,我们都知道,根据RAM的特性,MCU每次上电之后RAM里面的值是随机的。也就是....
发表于 01-05 08:59 149次 阅读
浅析MCU内部的RAM上电之后的初始值相关问题

八位MCU会被干掉吗?

根据市调机构的分析数据指出,近年来尽管32位MCU异军突起,然而8位MCU每年依然占有全球MCU市场....
发表于 01-05 06:25 698次 阅读
八位MCU会被干掉吗?

STM32家族迎来新成员 STM32G0的I/O利用率超93%

STM32家族迎来新成员:STM32G0系列,I/O利用率超93%,内置1%精度RC振荡器的主流型M....
的头像 嵌入式资讯精选 发表于 01-04 09:35 376次 阅读
STM32家族迎来新成员 STM32G0的I/O利用率超93%

无线MCU已成蔚然之势 芯片厂商如何竞争

随着越来越多的设备接入物联网,不只要求更多的无线连接功能和更高安全性,还需要低成本、低功耗等,因而以....
的头像 SiliconLabs 发表于 01-04 08:54 593次 阅读
无线MCU已成蔚然之势 芯片厂商如何竞争

RS485通信电路的原理介绍与选择方式概述

RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。在....
发表于 01-03 14:51 260次 阅读
RS485通信电路的原理介绍与选择方式概述

ARM、MCU、DSP、FPGA、SOC各是什么?区别是什么?

MCU应用最为广泛,主要利益于它的成本控制上,使它能在许多对计算能力要求不那么高的应用立足。相信在未....
的头像 玩转单片机 发表于 01-02 17:22 733次 阅读
ARM、MCU、DSP、FPGA、SOC各是什么?区别是什么?

STM32单片机的硬件设计详细问题解答资料说明

本文档的主要内容详细介绍的是STM32单片机的硬件设计详细问题解答资料说明主要内容包括了:1.如何保....
发表于 01-02 16:30 169次 阅读
STM32单片机的硬件设计详细问题解答资料说明

STM32F4系列MCU独立看门狗IWDG的应用

【IWDG主要特性】 1、独立的向下计数器 2、内部RC振荡器作为时钟源 3、当计数器值减到0....
发表于 01-02 15:37 92次 阅读
STM32F4系列MCU独立看门狗IWDG的应用

为下一代家用电器注入更多想象力

我们每天都与人机界面(HMI)进行交互。其中一些交互是显而易见的,比如在触摸智能手机或平板电脑的主屏....
的头像 人间烟火123 发表于 01-02 09:16 2586次 阅读
为下一代家用电器注入更多想象力

STM32 IAP的使用关键点

所谓IAP其实就相当于一个小小的bootloader 用来更新程序的很多产品基本都是程序做好后就直接....
发表于 01-01 11:07 96次 阅读
STM32 IAP的使用关键点

STM32的八种GPIO工作方式详解

GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。
的头像 传感器技术 发表于 12-30 16:44 482次 阅读
STM32的八种GPIO工作方式详解

Cortex-M3处理器中断和FreeRTOS中断优先级配置

STM32属于ARM中Cortex-M系列处理器,比如:STM32F1数据Cortex-M3,STM....
的头像 嵌入式资讯精选 发表于 12-30 11:23 577次 阅读
Cortex-M3处理器中断和FreeRTOS中断优先级配置

惊爆ADC MCU含税价跌至0.26RMB,还包含烧录费在内!

台湾应广科技推出了含税价0.26RMB的PMS171B。这则消息电子发烧友从分销渠道上得到了确认,应....
的头像 人间烟火123 发表于 12-29 10:48 3346次 阅读
惊爆ADC MCU含税价跌至0.26RMB,还包含烧录费在内!

STM32进行多路分时ADC和串口显示及液晶屏显示的库函数资料免费下载

本文档的主要内容详细介绍的是STM32单片机进行多路分时ADC和串口显示及液晶屏显示的库函数资料免费....
发表于 12-29 08:00 270次 阅读
STM32进行多路分时ADC和串口显示及液晶屏显示的库函数资料免费下载

STM32F10x的常见应用解析

在实际应用中,经常出现由于晶体振荡器在运行中失去作用,造成微处理器的时钟源丢失,从而出现死机的现象,....
发表于 12-28 16:41 155次 阅读
STM32F10x的常见应用解析

STM32F10x固件库V3.5.0的详细资料免费下载

本文档的主要内容详细介绍的是STM32F10x固件库V3.5.0的详细资料免费下载。
发表于 12-28 16:04 131次 阅读
STM32F10x固件库V3.5.0的详细资料免费下载

RH8T01K高性能精简指令集触控型MCU的数据手册免费下载

RH8T01K是一款高性能精简指令集触控型MCU,支持最多10个触控通道,支持三路独立PWM输出,使....
发表于 12-28 08:00 201次 阅读
RH8T01K高性能精简指令集触控型MCU的数据手册免费下载

TTY6857 10个电容式触摸按键芯片的数据手册免费下载

提供10个触摸感应按键及两线式串列界面,并有中断输出INT脚与MCU联系。提供低功耗模式,可使用于电....
发表于 12-28 08:00 187次 阅读
TTY6857 10个电容式触摸按键芯片的数据手册免费下载

使用STM32F407进行的综合实验程序合集资料免费下载

本文档的主要内容详细介绍的是使用STM32F407进行的综合实验程序合集资料免费下载。
发表于 12-28 08:00 191次 阅读
使用STM32F407进行的综合实验程序合集资料免费下载

STM32单片机教程之STM32从入门到精通的教程免费下载

本文档为STM32神舟系列前言必读,如果您是初学者,请您先参看搭建环境的章节,然后开始打开光盘中的例....
发表于 12-26 17:01 334次 阅读
STM32单片机教程之STM32从入门到精通的教程免费下载

纳思达携艾派克APM32系列MCU首秀,圆满收官!

12月22日下午,纳思达荣获由主办方颁发的“2018十大最佳国产芯片厂商”,该奖项是对纳思达芯片设计....
的头像 人间烟火123 发表于 12-26 09:53 1705次 阅读
纳思达携艾派克APM32系列MCU首秀,圆满收官!

如何使用FPGA和MCU进行大型LED显示屏系统设计

传统的大型LED显示屏系统以单片机MCU、ARM 或PLD为核心控制芯片,以FPGA为核心的led显....
发表于 12-25 11:21 150次 阅读
如何使用FPGA和MCU进行大型LED显示屏系统设计

该如何对8位以及32位的MCU进行选择

8位和32位MCU在功能上仍是互为辅助、各有千秋,这其中的诀窍就在于,需先了解什么样的应用适合什么样....
的头像 传感器技术 发表于 12-24 15:10 693次 阅读
该如何对8位以及32位的MCU进行选择

CC3200MOD SimpleLink Wi-Fi CC3200 片上因特网无线 MCU 模块

使用业界首款可编程FCC,IC,CE和Wi-Fi认证无线微控制器(MCU)模块,内置Wi-Fi,开始您的设计连接。 SimpleLink CC3200MOD专为物联网(IoT)而创建,是一个集成了ARM Cortex-M4 MCU的无线MCU模块,允许客户使用单个设备开发整个应用程序。凭借片上Wi-Fi,互联网和强大的安全协议,无需先前的Wi-Fi体验即可加快开发速度。 CC3200MOD将所有必需的系统级硬件组件(包括时钟,SPI闪存,RF开关和无源元件)集成到LGA封装中,以便于组装和低成本PCB设计。 CC3200MOD作为完整的平台解决方案提供,包括软件,样本应用,工具,用户和编程指南,参考设计以及TI E2E支持社区。 应用MCU子系统包含行业标准的ARM Cortex- M4内核以80 MHz运行。 该器件包括各种外设,包括快速并行相机接口,I2S,SD /MMC,UART,SPI,I2C和四通道ADC。 CC3200系列包括用于代码和数据的灵活嵌入式RAM;带外部串行闪存引导程序和外设驱动程序的ROM;用于Wi-Fi网络处理器服务包,Wi-Fi证书和凭证的SPI闪存。 Wi-Fi网络处理器子系统具有Wi-Fi片上网络,并包含一个附加功能专用的ARM...
发表于 08-20 17:53 92次 阅读
CC3200MOD SimpleLink Wi-Fi CC3200 片上因特网无线 MCU 模块