已经收到开发板了,之后就是搭建开发环境,下载资料。 从大学堂下载的资料最好就是放到一个没有中文的目录下。 出教程时FSP库还是4.0.0的版本,如今已经升级了。到4.1.0了。不过野火例程还是能用的,不影响。 Keil开发需要下载这两个。 安装好之后就是在keil下添加这个工具路径。 也是时这个RA Smart管脚配置工具。 这里我用配置好的eeprom例程修改,目前这个板载IO不是全部引出的,还是芯片比较大,管脚较多的原因。一些硬件就没做引出使用了,这里我没焊接板子,是用杜邦线直接戳上去的。 工程需要先编译下不然很多库没有。 原有的东西我没动。新增加了一些。 - #define SHT20_Write_Add 0x80
- #define SHT20_Read_Add 0x81
-
- #define SHT20_SOFT_RESET 0XFE
-
- #define SHT20_Measurement_RH_HM 0XE5
- #define SHT20_Measurement_T_HM 0XE3
-
- extern i2c_master_event_t g_i2c_callback_event;
- extern unsigned int timeout_ms;
-
- float temp1,humi1;
-
- 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(&EEPROM_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(&EEPROM_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(&EEPROM_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(&EEPROM_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);
- }
-
- void sht20_soft_reset()
- {
- uint8_t cmd = SHT20_SOFT_RESET;
- R_IIC_MASTER_Write(&EEPROM_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 = 500;
- }
复制代码
这里用硬件还是很方便的。 修改上面的文件下的一些配置。上面两个因为这个SHT20发出读数据,中间要等待其转换,转换时长比较长,所以需要修改。 时序是这样的。 仿真用的J-LINK,sht20直接短接在EEPROM管脚上。 打印数据如上。
|