Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC
RT-Thread Studio
RT-Thread Studio 生成STM32H7项目时ADC配置错误
发布于 2023-07-31 00:12:06 浏览:223
订阅该版
[tocm] # 在使用RT-Thread Studio 生成STM32H7项目时ADC配置错误 ## 生成的adc_config.h中的ADC_CONFIG结构体不是H7的  ### 生成的代码是 ```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应该是  ### 正确代码 ```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,试试(注:芯片包还未更新) 
张世争
2023-07-31
学以致用
工程构建脚本处理一下,使用 `scons --target=eclipse` 重新生成工程, studio 就是个IDE,
撰写答案
登录
注册新账号
关注者
0
被浏览
223
关于作者
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
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
BL808 RT-Thread Wi-Fi 驱动适配
2
rt-thread 系统运行期改变网卡配置
3
简单的步进电机驱动调试
4
RT-Thread Github action 体验
5
RTC+硬件时钟分析STM32L4
热门标签
RT-Thread Studio
串口
LWIP
Env
AT
SPI
Bootloader
FinSH
ART-Pi
CAN总线
Hardfault
USB
文件系统
RT-Thread
DMA
SCons
线程
MQTT
RT-Thread Nano
STM32
RTC
ESP8266
rt-smart
flash
ota在线升级
WIZnet_W5500
FAL
I2C
packages_软件包
UART
cubemx
freemodbus
潘多拉开发板_Pandora
定时器
PWM
BSP
ADC
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
SDIO
Debug
AB32VG1
MicroPython
C++_cpp
编译报错
QEMU
msh
ulog
本月问答贡献
出出啊
1500
个答案
338
次被采纳
小小李sunny
1389
个答案
276
次被采纳
张世争
714
个答案
157
次被采纳
crystal266
522
个答案
153
次被采纳
whj467467222
1216
个答案
146
次被采纳
本月文章贡献
出出啊
1
篇文章
12
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
2
篇文章
0
次点赞
crystal266
2
篇文章
5
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部