打印
[其他]

探测环境温度和光照度参数

[复制链接]
252|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wowu|  楼主 | 2023-2-16 10:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Sensor 环境参数感知
ADC 相关的硬件信息
ADC1 有 19 个通道, ADC2 有 17 个外部通道和 2 个内部通道
ADC 挂在 APB2 总线,时钟最快不超过
PF6 对应的是温度器,对应的是 ADC1 的通道 18, PF7 对应的是光照度传感器, 对应的是 ADC1 的通道 17
ADC1 地址范围 0x4001 2400 - 0x4001 27FF 1KB ADC1
0x4002 0000 - 0x4002 03FF 1KB DMA1 , 发现 DMA1 无法正常访问 SRAM1 的内存,但是 SRAM2 或者 TCM SRAM 却是可以的
发现的问题
官方的 sdk 中的 adc 部分存在一个 BUG,当配置使用任意通道模式配置的通道超过 15 时就会出错,diff 文件:


因为使用到了 ADC 的任意通道和 DMA,在使用 DMA 的时候发现,数据不能正常发送过去,但是在 openocd 查看这个地址是有数据的,用 printf 打印出来却没有变化,尝试修改目的内存地址到 SRAM2(0x3001c000)或者 TCM SRAM(0x2000000) 却可以正常显示。感觉和编译有关系一样。没有过多研究,
看下运行效果截图
tshell>Sensor thermal&brightness value raw=435 369
Sensor thermal=32.89 convert_tmp=8
Brightness value=60lux
Sensor thermal&brightness value raw=429 380
Sensor thermal=32.89 convert_tmp=8
Brightness value=70lux
Sensor thermal&brightness value raw=385 347
Sensor thermal=29.61 convert_tmp=9
Brightness value=60lux
Sensor thermal&brightness value raw=418 368
Sensor thermal=32.89 convert_tmp=8
Brightness value=60lux
Sensor thermal&brightness value raw=403 372
Sensor thermal=29.61 convert_tmp=9
Brightness value=60lux
————————————————
版权声明:本文为CSDN博主「极术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47569031/article/details/127426670

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

3852

帖子

1

粉丝