SCZeiDan 7ca2ebc51a
[bsp][stm32] fix bugs of i2c hardware drivers
在STM32F429IGTx设备上使用硬件i2c驱动程序师遇到以下几个问题:

语法错误:drv_hard_i2c.c 行67、68中i2c_handle未正常替换过来,估计是上个版本对变量重命名后因为宏定义忽略了此处修改;
语法错误:drv_hard_i2c.c 行326中缺少一个"}"导致编译出错;
初始化i2c设备过程中对双地址选项进行设置时(i2c_handle->Init.OwnAddress2Masks = I2C_OA2_NOMASK),STM32F4系列SOC没有这个配置定义,于是我直接将双地址模式关闭了(i2c_handle->Init.DualAddressMode = I2C_DUALADDRESS_DISABLE);
初始化i2c设备(DMA方式)过程中发现i2c_hard_config.h文件中未定义DMA通道配置;

主要补丁如下:
修复硬件i2c驱动代码中语法错误(drv_hard_i2c.c行67、68、326);
关闭默认i2c双地址模式(drv_hard_i2c.c行75:I2C_DUALADDRESS_DISABLE);
添加硬件i2c驱动配置文件DMA相关配置项,增加对SOC_SERIES_STM32F2、SOC_SERIES_STM32F4、SOC_SERIES_STM32F7系列芯片配置DMA_CHANNEL的适配
2024-04-24 01:42:03 -04:00
..
2024-03-21 11:23:29 +08:00
2024-04-19 21:30:12 -04:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00
2024-03-21 11:23:29 +08:00

STM32 BSP 说明

STM32 系列 BSP 目前支持情况如下表所示:

BSP 文件夹名称 开发板名称
F0 系列
stm32f072-st-nucleo ST 官方 STM32F072-nucleo 开发板
stm32f091-st-nucleo ST 官方 STM32F091-nucleo 开发板
F1 系列
stm32f103-100ask-mini 百问网F103 Mini开发板
stm32f103-100ask-pro 百问网F103 Pro开发板
stm32f103-atk-nano 正点原子 F103 NANO 开发板
stm32f103-atk-warshipv3 正点原子 F103 战舰V3 开发板
stm32f103-blue-pill STM32F103C8T6蓝色最小系统板
stm32f103-dofly-lyc8 德飞莱 STM32F103 开发板
stm32f103-dofly-M3S 德飞莱 STM32F103 开发板
stm32f103-fire-arbitrary 野火 F103 霸道开发板
stm32f103-gizwits-gokitv21 GoKit V2.1开发板
stm32f103-hw100k-ibox 硬件十万个为什么 STM32F103 iBox 开发板
stm32f103-onenet-nbiot STM32F103 OneNET NB-IoT 开发板
stm32f103-yf-ufun STM32F103 yf-ufun 开发板
stm32f107-uc-eval uC/Eval STM32F107 评估板(中国版)
F2 系列
stm32f207-st-nucleo ST 官方 STM32F207-nucleo 开发板
F3 系列
stm32f302-st-nucleo ST 官方 STM32F302-nucleo 开发板
stm32f334-st-nucleo ST 官方 STM32F334-nucleo 开发板
F4 系列
stm32f407-rt-spark 睿赛德官方 F407 星火一号开发板
stm32f401-st-nucleo ST 官方 STM32F401 Nucleo-64 开发板
stm32f405-smdz-breadfruit 三木电子 SM1432F405 开发板
stm32f407-lckfb-skystar 立创开发板 天空星STM32F407开发板
stm32f407-atk-explorer 正点原子 F407 探索者开发板
stm32f407-robomaster-c 大疆公司 RoboMaster C型开发板
stm32f407-st-discovery ST 官方 STM32F407-discovery 开发板
stm32f410-st-nucleo ST 官方 STM32F410-Nucleo-64 开发板
stm32f411-atk-nano 正点原子 F411 NANO 开发板
stm32f411-st-nucleo ST 官方 STM32F411-Nucleo-64 开发板
stm32f411-weact-MiniF4 F401/F411最小系统开发板Black Pill
stm32f412-st-nucleo ST 官方 STM32F412-Nucleo-144 开发板
stm32f413-st-nucleo ST 官方 STM32F413-Nucleo-144 开发板
stm32f427-robomaster-a 大疆公司 RoboMaster A型开发板
stm32f429-armfly-v6 安富莱 F429-v6 开发板
stm32f429-atk-apollo 正点原子 F429 阿波罗开发板
stm32f429-fire-challenger 野火 F429 挑战者开发板
stm32f429-st-disco ST 官方 STM32F429-discovery 开发板
stm32f446-st-nucleo ST 官方 STM32F446-nucleo 开发板
stm32f469-st-disco ST 官方 STM32F469-discovery 开发板
F7 系列
stm32f746-st-disco ST 官方 STM32F746-discovery 开发板
stm32f767-atk-apollo 正点原子 F767 阿波罗开发板
stm32f767-fire-challenger-v1 野火 F767-V1 挑战者开发板
stm32f767-st-nucleo ST 官方 STM32F767-nucleo 开发板
stm32f769-st-disco ST 官方 STM32f769-discovery 开发板
G0 系列
stm32g070-st-nucleo ST 官方 STM32G070-nucleo 开发板
stm32g071-st-nucleo ST 官方 STM32G071-nucleo 开发板
G4 系列
stm32g431-st-nucleo ST 官方 STM32G431-nucleo 开发板
H7 系列
stm32h743-armfly-v7 安富莱 STM32H743 v7 开发板
stm32h743-atk-apollo 正点原子 h743 阿波罗开发板
stm32h743-openmv-h7plus OPENMV 官方 H7-PLUS 开发板
stm32h743-st-nucleo ST 官方 STM32H743-nucleo 开发板
stm32h747-st-discovery ST 官方 STM32H747I-discovery 开发板
stm32h750-armfly-h7-tool 安富莱 STM32H750 Tool 开发板
stm32h750-artpi RT-Thread 官方 STM32H750-artpi 开发板
stm32h750-fk750m1-vbt6 反客科技 FK750M1-VBT6 开发板
stm32h750-weact-ministm32h7xx 微行电子 STM32H7xx 核心板
L0 系列
stm32l010-st-nucleo ST 官方 STM32L010-nucleo 开发板
stm32l053-st-nucleo ST 官方 STM32L053-nucleo 开发板
L4 系列
stm32l4r5-st-nucleo ST 官方 STM32L4R5-Nucleo 开发板
stm32l4r9-st-eval ST 官方 STM32L4R9I-EVAL 开发板
stm32l412-st-nucleo ST 官方 STM32L412-Nucleo 开发板
stm32l431-BearPi STM32L431 小熊派 开发板
stm32l432-st-nucleo ST 官方 STM32L432-Nucleo 开发板
stm32l433-st-nucleo ST 官方 STM32L433-Nucleo 开发板
stm32l452-st-nucleo ST 官方 STM32L452-Nucleo 开发板
stm32l475-atk-pandora 正点原子 L475 潘多拉 IoT 开发板
stm32l475-st-discovery ST 官方 stm32l475-discovery 开发板
stm32l476-st-nucleo ST 官方 STM32L476-Nucleo 开发板
stm32l433-ali-startkit 诺行 STM32L433 Ali Start Kit 开发板
stm32l496-ali-developer 诺行 STM32L496 Ali Developer Kit 开发板
stm32l496-st-nucleo ST 官方 STM32L496-Nucleo 开发板
stm32l496-st-discovery ST 官方 STM32L496G discovery 开发板
L5 系列
stm32l552-st-nucleo ST 官方 STM32L552-Nucleo 开发板
U5 系列
stm32u575-st-nucleo ST 官方 STM32U575ZI-Nucleo 开发板
H5 系列
stm32h563-st-nucleo ST 官方 STM32H563ZI-Nucleo 开发板
MP1 系列
stm32mp157a-st-discovery ST 官方 STM32MP157A-DK1 开发板
stm32mp157a-st-ev1 ST 官方 STM32MP157A-EV1 开发板
WB 系列
stm32wb55-st-nucleo ST 官方 STM32WB55-Nucleo 开发板
stm32wl55-st-nucleo ST 官方 STM32WL55-Nucleo 开发板

可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:

BSP 使用教程 简介
外设驱动使用教程 讲解 BSP 上更多外设驱动的使用方法
外设驱动介绍与应用 讲解 STM32 系列 BSP 驱动的支持情况,以及如何利用驱动框架开发应用程序
BSP 制作与提交 简介
BSP 制作教程 讲解 STM32 系列 BSP 的制作方法,以及在制作 BSP 和提交 BSP 时应当遵守的规范,视频教程请观看 《RT-Thread STM32 系列 BSP 制作视频教程》
外设驱动添加指南 讲解 BSP 添加更多设备驱动的方法