打印
[单片机芯片]

【CH585M开发板抢先体验】-I2C使用

[复制链接]
1066|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuxiubo|  楼主 | 2024-12-26 17:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
年底拿到了沁恒最新的CH585M的开发板,其是增加了一个NFC功能,加上之前的蓝牙,这款芯片可以说是国内支持其蓝牙加NFC为数不多的芯片,加上其还有其他的功能引脚,可以做很多方向上的应用了。这款芯片也是基于青稞RISC-V架构的芯片,所以需要用他们自己的IDE开发。

主要参数贴上来,这款USB也是支持了两种,对于沁恒来说,USB应该是最熟悉的功能了。
本次开发我们先选择了IIC例程,读取SHT20温湿度传感器,用了这么长时间的温湿度传感器也是想要仔细看下内部功能了,优化了我们原先只读取数据,也从头看了下手册,其功能也丰富了下,主要按照Arduino库进行改写的。

首先是新建工程,通过官方IDE进行新建很多库和资源都给整理好了,这点上十分方便,案例放的是一个串口DEMO,但是本次我用的开发板,本意调试串口不是这个,我们还是修改下,然后复用下即可,可以看到其初始化还是很简单的,我们中需要用下printf,所以新建的工程我们需要配置下调试串口,这个宏在工程属性中。

修改成串口0即可。

这里面我们新建两个文件,专门放这个芯片的驱动。初始化IIC硬件,我们的IIC PB12,PB13是接到了USB外设上的,所以为了不占用,我们调换成PB20,PB21。


重映射这里也标记是有问题,但是在定义的地方是对的,小瑕疵,但是不影响使用。

接下来我们就是看下案例给的IIC应用。

给了一个文档说明,基本按照文档要求进行改写就没问题,这里遇到几个问题。
就是写错了IIC就不能起来了,一直是忙状态,用其调试口复位也是一样,需要完全下电,然后才能重新采集到波形。
就是读取的NCK事情。

这里的9号,发送这个NCK后,下一个传感器数据就不对了,我仅发送STOP其实自己已经是会NCK的了。

读传感器三个数据的时候,这里不能发NCK。
3.就是其地址,函数是7为地址描述

但是实际是发送的是8位的地址才能有效。

此次对其就是新增了用户读取配置,好几个,一个是读取精度,一个是设置内置加热的功能,用来测试传感器数据真实性的,还有就是监测电源电压了。
整体效果演示下,然后就是代码我给传上来了,自己参考即可。

我开了加热,他读取到的也是对的。然后就是观察其湿度是不是随着温度升高下降的。

CH585M.zip (152.09 KB)



使用特权

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

本版积分规则

67

主题

253

帖子

2

粉丝