年底拿到了沁恒最新的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)
|