[ ST NUCLEO-U575ZI-Q 测评] 简单的获取温湿度
<div class='showpostmsg'><p>在此款MCU上开发,继续CUBEMX进行,很多的操作上还是和原来没有差异,差异化的外设后期我们再进行测评。今天还是最简单的硬件IIC读取我们的温湿度传感器。</p><p > 首先就是建立芯片的工程,我们直接选择芯片即可,不选择相应的开发板。勾选我们的IIC,修改下我们的I2C1管脚,默认是PG13,PG14这两个是在未焊接的排针上,所以调成PB8,PB9是我们的Arduino拓展接口上的。</p>
<p > </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(&hi2c1,SHT20_WriteAddr,&cmd,1,0xffff);
// HAL_Delay(100);
// HAL_I2C_Master_Receive(&hi2c1,SHT20_ReadAddr,tem,3,0x3ffff);
//
// cmd=SHT20_Trig_RH;
// HAL_I2C_Master_Transmit(&hi2c1,SHT20_WriteAddr,&cmd,1,0xffff);
// HAL_Delay(100);
// HAL_I2C_Master_Receive(&hi2c1,SHT20_ReadAddr,rh,3,0x3ffff);
//第二种方法:复合操作
HAL_I2C_Mem_Read(&hi2c1,SHT20_ReadAddr,SHT20_Trig_T,I2C_MEMADD_SIZE_8BIT,tem,3,0xffff);
HAL_I2C_Mem_Read(&hi2c1,SHT20_ReadAddr,SHT20_Trig_RH,I2C_MEMADD_SIZE_8BIT,rh,3,0xffff);
Tdata = tem;
Tdata <<= 8;
Tdata += tem & 0xfe;
RHdata = rh;
RHdata <<= 8;
RHdata += rh & 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(&hi2c1,SHT20_WriteAddr,&cmd,1,0xffff);
HAL_Delay(100);
}</code></pre>
<p >上述是代码,硬件IIC操作省事,得益于ST的库进行了封装。</p>
<p > </p>
<p >仿真界面可以看到我们的STLINK-V3。</p>
<p > </p>
<p >下载完成进行仿真即可看到数据。</p>
<p > </p>
<p >这里更加直观一点。</p>
<p > </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> <p>ST通过STM32MX配置硬件IIC,已经解决了硬件IIC的弊病了吗?</p>
<p>stm32CUBEMX和stm32cubeide 确实方便<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan76.gif" width="48" /></p>
秦天qintian0303 发表于 2022-12-15 09:48
ST通过STM32MX配置硬件IIC,已经解决了硬件IIC的弊病了吗?
<p>基本应该是没问题了,也不少人使用了</p>
秦天qintian0303 发表于 2022-12-15 09:48
ST通过STM32MX配置硬件IIC,已经解决了硬件IIC的弊病了吗?
<p>我昨天用在oled ssd1306,用硬件驱动,相比软件驱动,效果好很多。</p>
<p>测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html</p>
页:
[1]