完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32 ADC转换结果在ADCx->DR寄存器中,这个寄存器是一个32位的寄存器,但是只有16bit可用。
下方以L4的RM0394文档为例,其他类似: 为了客观,不管L4,编辑一下帖子,下方的截图是F4的RM0090文档的DR寄存器: 在HAL库中,读取ADC转换结果提供的接口函数是HAL_ADC_GetValue,返回的是uint32,你可以根据你设置的左对齐/右对齐方式,将结果移位到你需要的uint8_t变量即可。 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc) { /* Return the selected ADC converted value */ return hadc->Instance->DR; } 在LL库中,其实也没啥区别,10位/8位/6位分辨率,都是返回的uint16_t __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx) { return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA)); } __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx) { return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA)); } __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx) { return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA)); } 结论:你可以将转换结果放入到uint8_t变量中。但是自己要根据左/右对齐方式,将接口函数读取出来的uint16_t/uint32_t移位处理一下,再赋值给uint8_t的变量即可。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
811 浏览 0 评论
5294 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2684 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
3032 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
32361 浏览 11 评论
73318 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 18:22 , Processed in 0.677818 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号