完善资料让更多小伙伴认识你,还能领取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的变量即可。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:31 , Processed in 0.683128 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1158