0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

9GxC_IoTMaker 来源:未知 作者:胡薇 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
    mcu
    +关注

    关注

    146

    文章

    17141

    浏览量

    351095
  • STM32
    +关注

    关注

    2270

    文章

    10897

    浏览量

    355862

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

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

收藏 人收藏

    评论

    相关推荐

    HAL在Arduino平台上的使用

    ,适合于快速原型开发和教育。HAL(硬件抽象层)是一种在Arduino平台上使用的软件,它提供了一种标准化的方式来访问硬件功能,使得开发者可以编写更通用、更可
    的头像 发表于 12-02 14:04 258次阅读

    HAL标准的区别 HAL与CMSIS的关系

    在嵌入式系统开发中,HAL(硬件抽象层)标准是两种常用的软件,它们在功能和使用场景上有所不同。 1.
    的头像 发表于 12-02 14:02 488次阅读

    HAL的函数调用示例

    HAL(Hardware Abstraction Layer,硬件抽象层)是STM32等微控制器中常用的,它为开发者提供了访问和控制硬件设备的接口。以下是一些常用的HAL库函数及其
    的头像 发表于 12-02 14:01 352次阅读

    HAL在STM32开发中的重要性

    HAL(Hardware Abstraction Layer Library,硬件抽象层)在STM32开发中扮演着至关重要的角色。以下是HAL
    的头像 发表于 12-02 13:35 311次阅读

    如何快速入门HAL编程 HAL与裸机编程的比较

    如何快速入门HAL编程 要快速入门HAL编程,可以遵循以下步骤: 了解基础知识 : 掌握C语言编程基础,包括变量、数据类型、函数、指针等。 了解嵌入式系统的基本概念,如微控制器、中
    的头像 发表于 12-02 11:39 289次阅读

    HAL在嵌入式系统中的应用

    HAL是一种在嵌入式开发中用于屏蔽底层硬件细节、提供统一接口的软件层。它允许开发者在编写应用程序时无需关心具体的硬件实现,从而提高了代码的可移植性和复用性。HAL
    的头像 发表于 12-02 11:32 498次阅读

    第12章-ADC采集电压和显示 基于STM32的ADC—电压采集(详细讲解+HAL

    第12章-ADC采集电压和显示 基于STM32的ADC—电压采集(详细讲解+HAL
    的头像 发表于 08-21 16:31 2531次阅读
    第12章-ADC采集电压和显示 基于STM32的ADC—电压采集(详细讲解+<b class='flag-5'>HAL</b><b class='flag-5'>库</b>)

    手把手带你移植HAL库函数

    在嵌入式系统开发中,硬件抽象层(HAL,HardwareAbstractionLayer)的使用可以极大地简化开发过程,提高代码的可移植性和维护性。本文详细介绍如何快速搞懂
    的头像 发表于 05-18 08:04 1894次阅读
    手把手带你<b class='flag-5'>移植</b><b class='flag-5'>HAL</b>库函数

    IAP升级,boot和app分别是用标准HAL写的,跳转不成功是怎么回事?

    在学IAP升级。 我写的app程序是用HAL写的,设置了IROM的起始地址及大小,在程序开始后也设置了中断向量表偏移地址。 用我同事写好的boot程序(标准写的,可以跳转到
    发表于 04-24 07:56

    如果是使用六步方波的方法来控制电机,要如何实现过电流保护?

    请问一下如果是使用六步方波的方法来控制电机,要如何实现过电流保护? 以免电流过大造成板子损坏
    发表于 04-22 08:10

    请问workbench生成代码时怎么选择foc或梯形六步法?

    workbench生成代码时怎么选择foc或梯形六步法?
    发表于 04-19 07:53

    STM32标准程序与HAL程序如何合并的?

    请问大家STM32标准款与HAL程序有没有合并的教程,或是合并的方法?
    发表于 04-03 08:02

    IHM08M1板bldc无刷电机六步方波马达电压可以48V吗?

    IHM08M1板bldc无刷电机六步方波马达电压可以48V吗?我看反电动势分压为3V3,这个是不是有问题
    发表于 03-28 08:05

    STM32F429的工程标准移植HAL后中断向量表异常的原因?

    STM32F429的工程标准移植HAL后中断向量表异常
    发表于 03-20 06:02

    移植libmodbus米尔-全志T113-i开发板

    测试开发板在工业领域的应用,modbus作为工业领域的一个重要协议,那好就移植libmodbus
    的头像 发表于 03-05 22:37 2468次阅读
    <b class='flag-5'>移植</b>libmodbus<b class='flag-5'>库</b><b class='flag-5'>到</b>米尔-全志T113-i开发板