Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC
RT-Thread Studio
RT-Thread Studio 生成STM32H7项目时ADC配置错误
发布于 2023-07-31 00:12:06 浏览:361
订阅该版
[tocm] # 在使用RT-Thread Studio 生成STM32H7项目时ADC配置错误 ## 生成的adc_config.h中的ADC_CONFIG结构体不是H7的 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230730/ef3e137c2a5b7caa7dc24008724b1c58.png.webp) ### 生成的代码是 ```c #define ADC1_CONFIG \ { \ .Instance = ADC1, \ .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ .Init.Resolution = ADC_RESOLUTION_12B, \ .Init.DataAlign = ADC_DATAALIGN_RIGHT, \ .Init.ScanConvMode = DISABLE, \ .Init.EOCSelection = DISABLE, \ .Init.ContinuousConvMode = DISABLE, \ .Init.NbrOfConversion = 1, \ .Init.DiscontinuousConvMode = DISABLE, \ .Init.NbrOfDiscConversion = 0, \ .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ .Init.DMAContinuousRequests = DISABLE, \ } ``` ### 而正确的h7的adc_config.h应该是 ![screenshot_96a06dfab623d60a4b46c88e1f6f125e.png](https://oss-club.rt-thread.org/uploads/20230730/96a06dfab623d60a4b46c88e1f6f125e.png.webp) ### 正确代码 ```c #define ADC1_CONFIG \ { \ .Instance = ADC1, \ .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ .Init.Resolution = ADC_RESOLUTION_16B, \ .Init.ScanConvMode = ADC_SCAN_DISABLE, \ .Init.EOCSelection = ADC_EOC_SINGLE_CONV, \ .Init.LowPowerAutoWait = DISABLE, \ .Init.ContinuousConvMode = DISABLE, \ .Init.NbrOfConversion = 1, \ .Init.DiscontinuousConvMode = DISABLE, \ .Init.NbrOfDiscConversion = 1, \ .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR, \ .Init.Overrun = ADC_OVR_DATA_OVERWRITTEN, \ .Init.OversamplingMode = DISABLE, \ } ``` ## 我测试了一些情况 - RT-Thread Studio 生成STM32H753IITx芯片工程
生成代码错误
- RT-Thread Studio 生成STM32H743AGIx芯片工程
生成代码错误
- RT-Thread Studio 生成STM32H743-ATK-APOLLO开发板工程 BSP:1.0.2 RT-Thread:4.1.0
生成代码错误
- ENV工具在RT-Thread 4.1.1源码中在BSP stm32h743-atk-apollo 中 scons --dist生成工程中
生成代码正确
## 生成的库问题 不仅仅是adc_config.h问题,在drv_adc.c中 生成的代码是 ```c static rt_err_t stm32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled) { ADC_HandleTypeDef *stm32_adc_handler; RT_ASSERT(device != RT_NULL); stm32_adc_handler = device->parent.user_data; if (enabled) { #if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) ADC_Enable(stm32_adc_handler); #else __HAL_ADC_ENABLE(stm32_adc_handler); #endif } else { #if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) ADC_Disable(stm32_adc_handler); #else __HAL_ADC_DISABLE(stm32_adc_handler); #endif } return RT_EOK; } ``` 而正确的应该是 ```c static rt_err_t stm32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled) { ADC_HandleTypeDef *stm32_adc_handler; RT_ASSERT(device != RT_NULL); stm32_adc_handler = device->parent.user_data; if (enabled) { #if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined (SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) || defined (SOC_SERIES_STM32WB) ADC_Enable(stm32_adc_handler); #else __HAL_ADC_ENABLE(stm32_adc_handler); #endif } else { #if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined (SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) || defined (SOC_SERIES_STM32WB) ADC_Disable(stm32_adc_handler); #else __HAL_ADC_DISABLE(stm32_adc_handler); #endif } return RT_EOK; } ``` 修改了这些后才编译通过 ### 这个 studio 生成的工程问题很大,我目前只测试adc就遇到了这些问题,其他功能没有测试,没有启用,估计也是有错的. 希望官方早点修复,非常影响使用!
查看更多
2
个回答
默认排序
按发布时间排序
yangjie
认证专家
2023-08-01
hello
bsp 包更新了1.1.0,试试(注:芯片包还未更新) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230801/233fb9335901b108def0ecfc5635a223.png)
张世争
2023-07-31
学以致用
工程构建脚本处理一下,使用 `scons --target=eclipse` 重新生成工程, studio 就是个IDE,
撰写答案
登录
注册新账号
关注者
0
被浏览
361
关于作者
YeRuoyu
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
0
关注TA
发私信
相关问题
1
请大神帮忙看下风格 还是哪里有问题 照着串口驱动写的ADC驱动
2
ADC config
3
rt_thread_delay()和ADC采样之间的冲突
4
请教在官方BSP中的STM32F40X程序中加入ADC,串口没输出。
5
给RT-Thread添加ADC驱动框架
6
求助:ADC采样被干扰
7
【内核和外设学习营】十里 ADC光敏电阻电压采集实验
8
<内核学习营>+坦然+探索者stm32f407板子的ADC测试光传感器实验
9
【内核学习营】+青春+ADC读取光敏传感器实验
10
《内核学习营》+水一方+项目中应用的ADC实现电压采集
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
不用开发板都能跑的RT-Thread(保姆级教程)
2
RTTHREAD Doxygen 阅读
3
RT-Thread RISCV64 qemu 极简上手(不用思考就能跑起来)
4
NXP MCXN236测评-软件模拟I2C
5
ENV-Windows v2.0.0版本发布
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
Hardfault
ART-Pi
CAN总线
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
packages_软件包
cubemx
freemodbus
PWM
潘多拉开发板_Pandora
定时器
BSP
ADC
flashDB
中断
编译报错
Debug
socket
msh
keil_MDK
SFUD
GD32
ulog
C++_cpp
MicroPython
at_device
本月问答贡献
小小李sunny
3
个答案
4
次被采纳
Rb君
16
个答案
2
次被采纳
xiaorui
8
个答案
2
次被采纳
踩姑娘的小蘑菇
8
个答案
2
次被采纳
出出啊
2
个答案
2
次被采纳
本月文章贡献
Z_Y
2
篇文章
6
次点赞
andeyqi
2
篇文章
2
次点赞
Lu_盼盼
2
篇文章
1
次点赞
liYony
1
篇文章
12
次点赞
Rb君
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部