瑞萨单片机william hill官网
直播中

jf_84146745

4年用户 174经验值
擅长:嵌入式技术,EMC/MEI设计,处理器/DSP
私信 关注
[经验]

【瑞萨RA4系列开发板体验】1.外界SHT20传感器

收到开发板很长时间了,一直没有测试,今天先做个简单的,适应下新的开发方式,以及熟悉下我们的SDK工程。

首先就是需要下在我们的RASC工具。这样就可以生成我们需要的代码了,目前支持,keil,IAR,还有他们家自己的E2 studio。

image.png

进去后就是直接建立工程。

image.png

然后我们可以看到我们的图形化界面。对MCU也是有部分介绍,其最近出的都是基于M33内核的,其MCU内部外设资源还是很强大的。image.png

之后我们配置我们需要的IIC接口,由于拓展板是直接的全部引出的IO,所以我们可以直接使用的。

image.png

然后就是具体配置IIC的功能,我们可以重新命令名字,等配置。

image.png

这是我配置好的传感器接口,地址,回调函数等等。

image.png

生成的工程也是和其他不同,结构上就源文件就放了一个叫Hal_entry。

#define SHT20_Measurement_RH_HM  0XE5

#define SHT20_Measurement_T_HM  0XE3

float temp1,humi1;

unsigned int timeout_ms = 500;

i2c_master_event_t g_i2c_callback_event;

void i2c_callback (i2c_master_callback_args_t * p_args)

{

g_i2c_callback_event = p_args->event;

}

void sht20_get_value()

{

uint8_t cmd = SHT20_Measurement_T_HM;

uint8_t buff[2],buff1[2];

uint16_t temp,humi=0;

R_IIC_MASTER_Write(&SHT20_ctrl, &cmd, 1 , false);

while ((I2C_MASTER_EVENT_TX_COMPLETE != g_i2c_callback_event) && timeout_ms)

{


R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MILLISECONDS);

timeout_ms--;



}

timeout_ms = 750;

R_BSP_SoftwareDelay(10U, BSP_DELAY_UNITS_MILLISECONDS);

R_IIC_MASTER_Read(&SHT20_ctrl, buff, 2 , false);

while ((I2C_MASTER_EVENT_RX_COMPLETE != g_i2c_callback_event) && timeout_ms)

{

R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MILLISECONDS);

timeout_ms--

}

cmd = SHT20_Measurement_RH_HM;

R_IIC_MASTER_Write(&SHT20_ctrl, &cmd, 1 , false);

while ((I2C_MASTER_EVENT_TX_COMPLETE != g_i2c_callback_event) && timeout_ms)

{

R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MILLISECONDS);

timeout_ms--;

}

timeout_ms = 750;

R_BSP_SoftwareDelay(10U, BSP_DELAY_UNITS_MILLISECONDS);

R_IIC_MASTER_Read(&SHT20_ctrl, buff1, 2 , false);

while ((I2C_MASTER_EVENT_RX_COMPLETE != g_i2c_callback_event) && timeout_ms)

{

R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MILLISECONDS);

timeout_ms--;

}

timeout_ms = 750;

temp=(uint16_t)buff[0];

temp=temp<<8;

temp=buff[1]|temp;

temp1=-46.85+175.72*((float)temp/65536);

humi=(uint16_t)buff1[0];

humi=humi<<8;

humi=buff1[1]|humi;

humi1=-6+125*((float)humi/65536);

}

以上是我们的源码。

image.png

进入仿真后可以查看变量。

image.png

数值都是正常的。

接线示意:

回帖(1)

jf_84146745

2022-12-13 10:55:19


举报
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

更多回帖

发帖
×
20
完善资料,
赚取积分