STM32 HAL库手动配置过程

手动配置HAL库与配置固件库工程类似

1、首先新建四个文件夹

2、打开keil5,新建新工程在Project文件夹中

按开发板选择芯片

3、添加hal相关库到工程目录Libraries下

4、在User下新建main.c

5、在工程配置中新建5个组

6、将对应文件添加到工程中

  • 添加启动文件到STARTUP中

  • 添加system_stm32f1xx.c到CMSIS中

  • 将需要用到的相关外设源文件添加到STM32F1xx_HAL_Driver中

  • 添加main.c到USER中

  • DOC中放用户自己的说明文本readme.txt

7、在工程选项中添加头文件路径

8、在配置选项卡添加宏USE_HAL_DRIVER,STM32F103xE

9、勾选ARM微库和C99

10、将stm32f1xx_hal_conf_template.h头文件复制到USER中,并重命名为stm32f1xx_hal_conf.h

11、添加USER目录到工程头文包含到配置选项卡中

12、构建工程

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
硬石YS-F1Pro 开发板开发手册(HAL 库) STM32 入门系列教程 STM32 Cube 是一个全面的软件平台,包括 ST 产品的每个系列, ( 如 STM32Cube_F1 是针对 STM32F1 系列)。平台包括了 STM32Cube 硬件抽象层(HAL) 和一套中间组件(RTOS,USB,FS,TCP 等等)。 STM32Cube 是由 ST 公司原创倡议,旨在减少开发负担、时间和费用,为开 发者提供轻松的开发体验。 STMCube 覆盖了 STM32 全系列。 其中 STM32CubeMX 是上位机配置软件,可以根据使用者的选择生成底层初始化代码。 硬件抽象层 (HAL), 便是 CubeMX 配套的库, HAL 库屏蔽了复杂的硬件寄存器操作, 统一了 外设的接口函数( 包含 USB/以太网等复杂外设),代码结构强壮, 已通过 CodeSonar 认证。 同时, HAL 还集成了广泛的例程,可以运行在不同意法半导体 的开发板上。 YS-F1Pro 开发板是硬石团队研发的针对 STM32F103 芯片的综合性实验测试 平台,开发板几乎囊括了芯片所有的外设,这对新手入门是非常好的学习平台, 开发板几乎所有芯片采购来着嘉立创平台,芯片质量有保证, 这与同行还是有很 大区别的。 YS-F1Pro 开发板是一款性价比极高的 STM32 开发板, 接口齐全,我们 特意添加了电机控制部分接口,包括舵机、步进电机、有刷电机、无刷电机控制 接口。 本文档的一个最重要目标是让完全小白都可以轻松愉快的入门学习STM32, 最终掌握 STM32 的基本编程方法,学会将 STM32CubeMX 应用到自己 DIY 应用 中去
下面是使用STM32 HAL库进行SPI DMA配置的步骤: 1. 启用DMA时钟 首先,需要开启DMA时钟。使用以下代码: ``` __HAL_RCC_DMA1_CLK_ENABLE(); // 开启DMA1时钟 ``` 2. 配置SPI 在使用DMA之前,需要正确配置SPI。使用CubeMX或手动配置SPI寄存器。 3. 配置DMA 在配置DMA之前,需要确定使用哪个DMA通道。可以在STM32的参考手册中查找可用DMA通道的列表。 使用以下代码配置DMA: ``` /* 配置DMA */ hdma_spi.Instance = DMA1_Channel3; hdma_spi.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_spi.Init.PeriphInc = DMA_PINC_DISABLE; hdma_spi.Init.MemInc = DMA_MINC_ENABLE; hdma_spi.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_spi.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_spi.Init.Mode = DMA_NORMAL; hdma_spi.Init.Priority = DMA_PRIORITY_HIGH; ``` 其中,`DMA1_Channel3`是DMA通道。 `Direction`设置为“内存到外设”,因为我们要将数据从内存传输到SPI外设。`PeriphInc`设置为“禁止”,因为在SPI传输期间外设地址不应该自动增加。`MemInc`设置为“使能”,因为我们要在传输期间增加存储器地址。数据对齐设为“字节对齐”,并将优先级设置为“高”。 4. 配置DMA传输 下一步是配置DMA传输。使用以下代码: ``` /* 配置DMA传输 */ HAL_DMA_Init(&hdma_spi); __HAL_LINKDMA(hspi, hdmatx, hdma_spi); ``` 其中,`HAL_DMA_Init()`函数初始化DMA通道,将`hdma_spi`结构体作为参数传递。`__HAL_LINKDMA()`函数将DMA通道链接到SPI发送通道。 5. 启用DMA传输 最后,启用DMA传输。使用以下代码: ``` HAL_SPI_Transmit_DMA(&hspi, (uint8_t*)tx_data, len); ``` 其中,`HAL_SPI_Transmit_DMA()`函数将SPI发送通道设置为DMA模式,并将`tx_data`和`len`作为参数传递。DMA传输现在应该已启动。 请注意,以上代码仅为示例。具体实现可能因使用的STM32型号和所需的DMA通道而异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹烟淮雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值