流行科技 发表于 2022-12-15 09:28

[ ST NUCLEO-U575ZI-Q 测评] 简单的获取温湿度

<div class='showpostmsg'><p>在此款MCU上开发,继续CUBEMX进行,很多的操作上还是和原来没有差异,差异化的外设后期我们再进行测评。今天还是最简单的硬件IIC读取我们的温湿度传感器。</p>

<p > &nbsp;首先就是建立芯片的工程,我们直接选择芯片即可,不选择相应的开发板。勾选我们的IIC,修改下我们的I2C1管脚,默认是PG13,PG14这两个是在未焊接的排针上,所以调成PB8,PB9是我们的Arduino拓展接口上的。</p>

<p > &nbsp;</p>

<p >然后对于时钟,外部没有焊接晶振,所以使用内部晶振同样可以倍频到我们的160Mhz主频。</p>

<pre>
<code>float TemValue,RhValue;



void SHT20_ReadValues(void)

{

 uint8_t tem,rh;

 uint16_t Tdata=0,RHdata=0;



 //第一种方法:分步操作

// uint8_t cmd;

//

// cmd=SHT20_Trig_T;

// HAL_I2C_Master_Transmit(&amp;hi2c1,SHT20_WriteAddr,&amp;cmd,1,0xffff);

// HAL_Delay(100);

// HAL_I2C_Master_Receive(&amp;hi2c1,SHT20_ReadAddr,tem,3,0x3ffff);

//

// cmd=SHT20_Trig_RH;

// HAL_I2C_Master_Transmit(&amp;hi2c1,SHT20_WriteAddr,&amp;cmd,1,0xffff);

// HAL_Delay(100);

// HAL_I2C_Master_Receive(&amp;hi2c1,SHT20_ReadAddr,rh,3,0x3ffff);



 //第二种方法:复合操作

 HAL_I2C_Mem_Read(&amp;hi2c1,SHT20_ReadAddr,SHT20_Trig_T,I2C_MEMADD_SIZE_8BIT,tem,3,0xffff);

 HAL_I2C_Mem_Read(&amp;hi2c1,SHT20_ReadAddr,SHT20_Trig_RH,I2C_MEMADD_SIZE_8BIT,rh,3,0xffff);



 Tdata = tem;

 Tdata &lt;&lt;= 8;

 Tdata += tem &amp; 0xfe;



 RHdata = rh;

 RHdata &lt;&lt;= 8;

 RHdata += rh &amp; 0xfe;



 TemValue = Tdata * 175.72f / 65536 - 46.85f;

 RhValue = RHdata * 125.0f / 65536 - 6.0f;

}



void SHT20_SoftReset(void)

{

 uint8_t cmd=0xfe;



 HAL_I2C_Master_Transmit(&amp;hi2c1,SHT20_WriteAddr,&amp;cmd,1,0xffff);



 HAL_Delay(100);

}</code></pre>

<p >上述是代码,硬件IIC操作省事,得益于ST的库进行了封装。</p>

<p > &nbsp;</p>

<p >仿真界面可以看到我们的STLINK-V3。</p>

<p > &nbsp;</p>

<p >下载完成进行仿真即可看到数据。</p>

<p > &nbsp;</p>

<p >这里更加直观一点。</p>

<p >&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

秦天qintian0303 发表于 2022-12-15 09:48

<p>ST通过STM32MX配置硬件IIC,已经解决了硬件IIC的弊病了吗?</p>

damiaa 发表于 2022-12-15 09:53

<p>stm32CUBEMX和stm32cubeide 确实方便<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan76.gif" width="48" /></p>

流行科技 发表于 2022-12-15 15:04

秦天qintian0303 发表于 2022-12-15 09:48
ST通过STM32MX配置硬件IIC,已经解决了硬件IIC的弊病了吗?

<p>基本应该是没问题了,也不少人使用了</p>

lugl4313820 发表于 2022-12-16 07:19

秦天qintian0303 发表于 2022-12-15 09:48
ST通过STM32MX配置硬件IIC,已经解决了硬件IIC的弊病了吗?

<p>我昨天用在oled ssd1306,用硬件驱动,相比软件驱动,效果好很多。</p>

okhxyyo 发表于 2023-1-12 09:45

<p>测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html</p>
页: [1]
查看完整版本: [ ST NUCLEO-U575ZI-Q 测评] 简单的获取温湿度