【利用STM32F103RCT6/HAL库制作音乐播放器】标准库LCD驱动移植

本文介绍了如何将标准库的LCD驱动移植到STM32F103RCT6的HAL库中,以制作一个音乐播放器。内容包括删除不必要的延迟函数,移除不兼容的SPI2初始化,使用STM32CubeMX配置SPI2和GPIO,修改读写函数,并调整头文件中的宏定义。作者强调了HAL库的便利性和初始化代码的正确位置,以及keil的代码组织策略。
摘要由CSDN通过智能技术生成

  本人初学STM32F1系列单片机,打算上手HAL库,应大四学长之约在寒假制作一个音乐播放器(MP3)。STM32F103RCT6是学长选的MCU型号,本来想着自己画板子,但是芯片管脚太细不好焊接就放弃了。最终在某宝上找到了一款STM入手的开发板。但是商家提供的LCD驱动(LCD使用硬件SPI接口,具体接在SPI2上)是建立在标准库之上的,无法直接使用。尝试了一下将HAL库和标准库合并,发现两个库文件并不兼容。这就需要对LCD驱动进行移植才能使用HAL库。捣鼓了三天(因为我的C语言实在是没什么基础),摸索出来HAL库最基本的用法,总算是移植成功了。实际上修改的地方并不多,现将修改的地方说明如下:

lcd.c

  首先要删除#include "delay.h" ,因为HAL库自带一个延时函数HAL_Delay(),没有必要再定义一个延时函数。同时替换所有的delay_ms()为HAL_Delay()。

  然后便是要删除函数void SPI2_Init(void),这个函数是用于配置SPI2接口和需要用到的GPIO的,但是标准库与HAL库函数接口不同,故不再适用。

  删除以后,SPI2以及GPIO的初始化可以交付给STM32CubeMX进行配置,具体操作方法如下:


 

  首先新建一个STM32Cube工程,选择芯片型号为STM32F103RCTx

这个软件有个坑,默认配置是不开启调试功能的!!如果你使用J-Link或ST-Link,默认设置下会导致下载一次后无法调试或下载

正确的配置方式在SYS设置中开启调试功能的!!!

如果不慎没有开启调试功能,Under Reset模式下擦写即可

 

进行RCC设置

开启SPI2模块(全双工模式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值