printf('The MID bytes of the serial ID of the part is 0x%xnr',SID[1]);
printf('The Last bytes of the serial ID of the part is 0x%xnr',SID[2]);
printf('nr');
}
⑥读取温湿度值并转换成十进制显示:
void readSensor(void)
{
//holds 2 bytes of data from I2C Line
uint8_t Buffer_Byte[2];
//holds the total contents of the temp register
uint16_t temp,hum;
//holds the total contents of the humidity register
double temperature=0,humidity=0 ;
I2C0_Register_Read(Buffer_Byte,T_MEASUREMENT,2);
temp = (((uint32_t)Buffer_Byte[0])<<8 | Buffer_Byte[1]);
temperature = (double)(temp)/(65536)*165-40;
printf('The temperature is %.2fnr',temperature);
I2C0_Register_Read(Buffer_Byte,RH_MEASUREMENT,2);
hum = (((uint32_t)Buffer_Byte[0])<<8 | Buffer_Byte[1]);
humidity = (double)(hum)/(65536)*100;
printf('The humidity is %.2f%%nr',humidity);
}
⑦main函数:
/*!
brief main function
param[in] none
param[out] none
retval none
*/
int main(void)
{
/* configure periphreal */
systick_Init();
LED_TypeInit();
// NVIC_config();
// KEY_EXTI_TypeInit();
UART_TypeInit();
I2C0_TypeInit();
printf('**********DEMO START**********nr');
printf('******************************nr');
HDC1080_Init();
while(1)
{
readSensor();
delay_1ms(1000);
}
}
4、编译下载
①Build项目文件:
②没有错误,直接下载到开发板中,可以打开串口看到读出温湿度每隔1S读一次并打印出来,与环境温度计比较取值还是比较准确的。
5、试用总结
GD32F310G8芯片采用4x4 QFN28封装,结构可以设计相当紧凑,软件开发资源也是很丰富,虽然功能不算特别强大,但主流的外设基本都有囊括,在目前国产替代的大环境之下,应用前景还是相当广泛的。
上一篇:GD32F303固件库开发(11)----ADC在DMA模式下扫描多个通道
下一篇:基于GD32L235系列MCU的土壤湿度检测带磁力翻转式显示方案
设计资源 培训 开发板 精华推荐
- NVIDIA Blackwell B200新照:八卡并行 总功耗8000W
- 联想全球首秀16TB内存!128条128GB
- Allegro MicroSystems在2024年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 尼尔森数据背后:Shokz韶音如何在全球运动耳机市场脱颖而出
- 基于Infineon CoolGaN 200W 超薄壁画电视电源解决方案
- 基于Nuvoton NSP2.0 高品质语音提示方案
- 基于AR1335和i.MX8 MP的视觉方案
- 普华基础软件与瑞萨达成合作伙伴关系,推进汽车底层技术革新
- 恩智浦FXLS8971CF和FXLS8961AF加速度传感器提升您的精密测斜仪应用性能
- 工业峰会2024激发创新,推动智能能源技术发展