通过GPIO模拟IIC通信对接SHT20温湿度计

描述

因为是模拟的所以不必拘束IO管脚,我是选择了PB6,PB7管脚,这两个管脚旁边也有3.3V正好可以供电。

之后看下代码吧。

`void IIC_Init(void)
{

 

rcu_periph_clock_enable(RCU_GPIOB);

/* configure led GPIO port */
gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6|GPIO_PIN_7);
gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_6|GPIO_PIN_7);

IIC_SpeedCtl(5);

SDA_H;                                                    //拉高SDA线,处于空闲状态
SCL_H;                                                    //拉高SCL线,处于空闲状态

 

}`

这里是IIC接口初始化,我们初始化成GPIO_OTYPE_OD,开漏输出,这样不必在意IO口的方向,方便读取IO状态。
 

寄存器

之后获取温湿度值都在SHT20_GetValue函数中。主要就是读取两个寄存器里温湿度值。

然后我们可以仿真看下效果。

寄存器




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分