jinglixixi

  • 2021-03-03
  • 回复了主题帖: 【入选名单公布】树莓派Pico免费测评试用

    个人信息无误

  • 2021-02-26
  • 回复了主题帖: 如何快速通过STM32单片机实现ST传感器的驱动测试

    nmg 发表于 2021-2-26 08:53 @jinglixixi 可以看看
    已看到,有参考价值。  

  • 2021-02-25
  • 回复了主题帖: 【Gravity:AS7341测评】+ 色彩检测器的设计 (兼结题报告)

    okhxyyo 发表于 2021-2-25 10:29 很漂亮~赞赞赞~

  • 回复了主题帖: 【Gravity:AS7341测评】+ 色彩检测器的设计 (兼结题报告)

    上海首席男模 发表于 2021-2-24 09:33 你测出来数字量最大是1000还是65535
    也就1000

  • 2021-02-17
  • 回复了主题帖: 【ST MEMS防水气压传感器LPS27HHW测评】+2个驱程间的对比及应用 (兼结题报告)

    w494143467 发表于 2021-2-17 15:06 测评写的不错,就喜欢你这样的测评帖子,感谢老铁的分享!期待后续

  • 2021-02-11
  • 发表了主题帖: 【ST MEMS防水气压传感器LPS27HHW测评】+2个驱程间的对比及应用 (兼结题报告)

    本帖最后由 jinglixixi 于 2021-2-11 01:14 编辑 因LPS27HHW的驱动受阻,故放慢了测评的进程,幸得管管的指点与帮助,终于在littleshrimp相关帖子中获得了解决之道。 1. LPS27HHW与LPS22HH的对比 LPS22HH与LPS27HHW均属气压传感器,但各自又有各自的特点,为此从下面几点加以对比。 1)外观对比     图1   LPS22HH传感器   图2  LPS27HHW传感器                                                     由外观可以看出,2个传感器均因体型小巧而被置于开发板上来提供使用,且均以双排12PIN的排针引出供用户使用。但LPS27HHW比LPS22HH更突出,在于它的后膜设计防水性能。 2)性能对比 名称 LPS22HH LPS27HHW 测量范围 260 ~ 1260 hPa 260 ~ 1260 hPa 通讯接口 I²C, Serial, SPI SPI, I²C or MIPI I3C 工作电压 1.7V ~ 3.6V 1.7V ~ 3.6V 测量精度 24 bit精度 24 bit精度 ODR 1 ~ 200 Hz 1 ~ 200 Hz 最小电流 4 μA 4 μA 绝对压力精度 0.5 hPa 0.5 hPa 低压传感器噪声 0.65 Pa 0.7 Pa 封装类型 薄而小封装 防水封装   2)驱动程序对比 尽管LPS22HH与LPS27HHW在硬件上存在稍许的差异,那它们在软件的驱程上又有何差异呢? 在主程序方面: 两者的程序结构是完全相同的,所不同的就是调用的函数名称不同,毕竟所驱动的器件不一样嘛! 在LPS27HHW中,存在一个名为ucf_line_t的结构定义,但并未使用。 typedef struct {   uint8_t address;   uint8_t data; } ucf_line_t; 此外,将axis1bit16_t和axis1bit32_t的结构定义放于主程序中,而LPS22HH却放在lps22hh_reg. h。 typedef union{   int16_t i16bit;   uint8_t u8bit[2]; } axis1bit16_t; typedef union{   int32_t i32bit;   uint8_t u8bit[4]; } axis1bit32_t;   在驱程.c方面: 两者的程序结构是完全相同的,所不同的是对应的函数名称不同。 在驱程.h方面: 两者的程序结构是完全相同的,所不同的是对应的函数名称不同。 LPS22HH与LPS27HHW的ID标识值是相同的,见如下定义: #define LPS22HH_ID                  0xB3U #define LPS27HHW_ID              0xB3U   在lps22hh_reg. h中,多出了axis3bit16_t和axis3bit32_t的结构定义,但并未使用。 typedef union{   int16_t i16bit[3];   uint8_t u8bit[6]; } axis3bit16_t;   typedef union{   int32_t i32bit[3];   uint8_t u8bit[12]; } axis3bit32_t;   3)对比结论 综上所述,我们可以断定两者的驱程具有通用性,即可以用LPS22HH的驱程来驱动LPS27HHW。 那么实际情况该是怎样? 经实际测试,该推测是完全正确的。   2. LPS27HHW应用 在实际应用中,LPS27HHW与STM32L452的连接关系为: VDD    ---3.3V Vdd_IO ---3.3V GND   ---GND SCL    ---PB8 SDA    ---PB9   实现气压检测功能的主程序如下: int main(void) {   HAL_Init();   SystemClock_Config();   MX_GPIO_Init();   MX_I2C1_Init();   MX_USART2_UART_Init();   lps22hh_ctx_t dev_ctx;   //stmdev_ctx_t dev_ctx;   dev_ctx.write_reg = platform_write;   dev_ctx.read_reg = platform_read;   dev_ctx.handle = &hi2c1;   sprintf((char*)tx_buffer, "LPS22HH test\r\n");   tx_com( tx_buffer, strlen( (char const*)tx_buffer ) );   OLED_Init();   OLED_Clear();   OLED_ShowString(8,0,"STM32L452",16);   OLED_ShowString(8,2,"OLED & LPS27HHW",16);   HAL_Delay(1000);   HAL_Delay(1000);   OLED_Clear();   OLED_ShowString(8,0,"pres=",16);   OLED_ShowString(8,2,"temp=",16);   whoamI = 0;   lps22hh_device_id_get(&dev_ctx, &whoamI);   if ( whoamI != LPS22HH_ID )   while(1);   lps22hh_reset_set(&dev_ctx, PROPERTY_ENABLE);   do {     lps22hh_reset_get(&dev_ctx, &rst);   } while (rst);   lps22hh_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);   lps22hh_data_rate_set(&dev_ctx, LPS22HH_10_Hz_LOW_NOISE);   while (1)   {     lps22hh_reg_t reg;     lps22hh_read_reg(&dev_ctx, LPS22HH_STATUS, (uint8_t *)&reg, 1);   if(reg.status.p_da)     {       memset(data_raw_pressure.u8bit, 0x00, sizeof(int32_t));       lps22hh_pressure_raw_get(&dev_ctx, data_raw_pressure.u8bit);       pressure_hPa = lps22hh_from_lsb_to_hpa( data_raw_pressure.i32bit);       sprintf((char*)tx_buffer, "pressure [hPa]:%6.2f\r\n", pressure_hPa);       tx_com( tx_buffer, strlen( (char const*)tx_buffer ) );       sprintf((char*)tx_buffer, "pres=%6.2fhPa", pressure_hPa);       OLED_ShowString(8,0,tx_buffer,16);     }     if(reg.status.t_da)     {      memset(data_raw_temperature.u8bit, 0x00, sizeof(int16_t));       lps22hh_temperature_raw_get(&dev_ctx, data_raw_temperature.u8bit);       temperature_degC = lps22hh_from_lsb_to_celsius( data_raw_temperature.i16bit );       sprintf((char*)tx_buffer, "temperature [degC]:%6.2f\r\n", temperature_degC );       tx_com( tx_buffer, strlen( (char const*)tx_buffer ) );       sprintf((char*)tx_buffer, "temp=%6.2fdegC", temperature_degC );       OLED_ShowString(8,2,tx_buffer,16);     }     HAL_Delay(500);     HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET);     HAL_Delay(500);     HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET);   } } 进行LPS27HHW检测的线路连接如图3所示,其检测结果如图4所示。 图 3 串口检测连接 图 4 串口检测效果   在连接OLED屏的情况下,其显示效果如图5及图6所示。 图5  OLED屏显示界面   图 6 OLED屏显示效果   有了上面的实际体验,感觉LPS27HHW的性能还是很出色的,在检测气压的同时还能获得环境的温度状态,适于在小型气象站上使用。后面有时间的话,再将它移植到其它的开发板来使用。  

  • 2021-02-07
  • 回复了主题帖: 【测评SGP40】+自己动手丰衣足食-驱动编写&踩坑记录

    干货满满!!!

  • 回复了主题帖: 【测评SGP40】+开箱&功能

    感谢分享!

  • 2021-02-05
  • 回复了主题帖: 【测评SGP40】+开箱&基本使用

    不错,用起来真方便!

  • 2021-02-02
  • 回复了主题帖: 【复旦微FM33LC046N评测】+开箱&相关文档的准备

    doudou52098 发表于 2021-2-2 15:56 也可以直接找原厂申请
    这倒是个好途径,回头试一试,有你发的资料使用起来会方便许多,赞!!!

  • 回复了主题帖: 【ST MEMS防水气压传感器LPS27HHW测评】+例程存在的问题

    好的服务比说啥都重要!!!

  • 2021-02-01
  • 回复了主题帖: 【ST MEMS防水气压传感器LPS27HHW测评】+例程存在的问题

    littleshrimp 发表于 2021-2-1 16:28 你帖子里的代码“UartHandle”实际上就和“hi2c1”类似,你可以参照UartHandle来实现S ...
    是这样,当时我也是将UartHandle的tx_com赋给dev_ctx.handle来通过编译的。但构建一个像它那样的函数就比较困难了,因为无法知道该函数的功能要求及结构。其实例程中应该给出相应的函数,至于用户想怎样用,仿照改造就是。这实在是种缺陷!

  • 2021-01-31
  • 发表了主题帖: 【ST MEMS防水气压传感器LPS27HHW测评】+例程存在的问题

    本帖最后由 jinglixixi 于 2021-2-1 00:02 编辑 在前面的介绍中,对例程进行了相应的分析并介绍了在STM32F411开发板的基础上进行程序移入的处理方法。 在程序移入后,借助串口已能把模拟值按原程序的输出出来,且为其配置了OLED屏来辅助检测值的输出。 原指望在短时间内解决驱动的问题,从而能将例程顺利地放到STM32F411开发板上来进行功能检测。但是,这里有关键的问题没有解决,就是原程序缺少一个关键的定义,即语句dev_ctx.handle = &hi2c1; 会因为找不到hi2c1而无法完成编译。 后来添加了下面的语句就可以通过编译了: static I2C_HandleTypeDef    hi2c1; 修改后程序如下: void tx_com( uint8_t *tx_buffer, uint16_t len ) {      HAL_UART_Transmit( &UartHandle, tx_buffer, len, 1000 ); }   int main(void) {   HAL_Init();   SystemClock_Config();   //  #define USARTx                USART2   UartHandle.Instance          = USARTx;   UartHandle.Init.BaudRate     = 9600;   UartHandle.Init.WordLength   = UART_WORDLENGTH_9B;  //8B   UartHandle.Init.StopBits     = UART_STOPBITS_1;   UartHandle.Init.Parity       = UART_PARITY_ODD;   UartHandle.Init.HwFlowCtl    = UART_HWCONTROL_NONE;   UartHandle.Init.Mode         = UART_MODE_TX_RX;   UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;     if(HAL_UART_Init(&UartHandle) != HAL_OK)   {     Error_Handler();   }   printf("LPS27HHW & STM32F411 TEST \r\n");     stmdev_ctx_t dev_ctx;   dev_ctx.write_reg = platform_write;   dev_ctx.read_reg = platform_read;  dev_ctx.handle = &hi2c1;      // ***   whoamI = 0;   lps27hhw_device_id_get(&dev_ctx, &whoamI);   if ( whoamI != LPS27HHW_ID )     while(1);   lps27hhw_reset_set(&dev_ctx, PROPERTY_ENABLE);   do {     lps27hhw_reset_get(&dev_ctx, &rst);   } while (rst);     lps27hhw_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);   lps27hhw_data_rate_set(&dev_ctx, LPS27HHW_10_Hz_LOW_NOISE);     while(1)   {     lps27hhw_reg_t reg;     lps27hhw_read_reg(&dev_ctx, LPS27HHW_STATUS, (uint8_t *)&reg, 1);     if (reg.status.p_da)     {       memset(data_raw_pressure.u8bit, 0x00, sizeof(int32_t));       lps27hhw_pressure_raw_get(&dev_ctx, data_raw_pressure.u8bit);       pressure_hPa = lps27hhw_from_lsb_to_hpa( data_raw_pressure.i32bit);       sprintf((char*)tx_buffer, "pressure [hPa]:%6.2f\r\n", pressure_hPa);       tx_com( tx_buffer, strlen( (char const*)tx_buffer ) );     }     if (reg.status.t_da)     {       memset(data_raw_temperature.u8bit, 0x00, sizeof(int16_t));       lps27hhw_temperature_raw_get(&dev_ctx, data_raw_temperature.u8bit);       temperature_degC = lps27hhw_from_lsb_to_celsius( data_raw_temperature.i16bit );       sprintf((char*)tx_buffer, "temperature [degC]:%6.2f\r\n", temperature_degC );       tx_com( tx_buffer, strlen( (char const*)tx_buffer ) );     }   } }  

  • 回复了主题帖: 【Gravity:AS7341测评】+ 指定色彩的检测

    “adc最少都是10位吧”,这是不可能的,资料介绍:该传感器拥有6个独立的16位ADC通道,0xffff=65535,也不过5位数!

  • 2021-01-28
  • 回复了主题帖: 【Perf-V评测】+功能测试及硬件配置要求

    freebsder 发表于 2021-1-28 22:44 这是论坛的评测板子吗?
    这是论坛测评板进行相应测评所要自行配置的硬件配套资源。

  • 回复了主题帖: 【Gravity:AS7341测评】+ 指定色彩的检测

    freebsder 发表于 2021-1-28 22:49 感觉光度值有点小啊。
    哈哈,太阳光与屏幕的亮度太悬殊了。

  • 发表了主题帖: 【Perf-V评测】+功能测试及硬件配置要求

    按开发板使用教程的介绍及硬件配置的需要,我们可以将功能验证分为5个层次: 1.基础性的验证 此类验证,依托板载的外设资源即可实现,如流水灯、开关、按键及RGB_LED的功能验证。此外,一些利用片内资源的验证也可归入此类,如串行通讯和ADC采集的验证。但有些需要LCD显示配合的却无法归入此类,如片内温度采集何简易电压表等。 2.外挂器件类验证 此类验证,需要外挂的器件的配合来完成,如TFT屏显示、点阵模块显示等。此外,由于片内温度采集和简易电压表的验证需要LCD显示屏的配合,故也归入此类。 3.Arduino接口类验证 此类验证,要用到Arduino接口以连接外部的器件或功能模块,例如用图1所示的功能扩展板来进行的温湿度传感器验证。但不足的是该功能扩展板却缺少一个十分必要的器件——显示屏。尽管此类验证所含的内容最少且不完整,但却把它归为一类是因为,它的用途是十分必要的,通过相应的软件设计,可以扩展出功能非常强的应用,这也是本人看好澎峰Artix 7 FPGA 开发套件,所要努力拓展的方向。 图1  Arduino接口与功能扩展板 4.视频与网络通信类验证 此类验证,需用到高速接口,并通过相应的接口转换板来连接相关器件。 如: VGA显示的功能验证需要有高速转VGA接口,见图2所示。 图2 高速转VGA接口 HDMI显示的功能验证需要有高速转HDMI接口,见图3所示。 图3 高速转HDMI接口 摄像头的功能验证需要有高速转HDMI与摄像头接口,见图4所示。 图4 高速转HDMI与摄像头接口 由于贪吃蛇的小游戏也要用到显示屏,故也可归入此类。 此外,对于以太网和USB的通讯类验证,也需要有高速转2.54接口的转接板来配合,见图5所示。 图5 高速转2.54接口 5. 智能小车类验证 该验证设计的内容比较多,因此单独归为一类,它涉及到超声波测距避障、红外线寻迹、舵机转向,电机调速等内容。 图6 智能小车

  • 2021-01-27
  • 回复了主题帖: 【复旦微FM33LC046N评测】+开箱&相关文档的准备

    真是好板子呀,可惜没申请到,开发环境都建好了。

  • 回复了主题帖: 【Perf-V评测】+Perf-V IDE驱动及其出现的问题

    mig29 发表于 2021-1-26 23:25 我在这里找的: https://www.xilinx.com/support/download.html
    感谢,重新按了迅雷,有安装了4个小时,总算装上了。

  • 2021-01-26
  • 回复了主题帖: MicroPython固件开发教程

    学习学习  

最近访客

< 1/6 >

统计信息

已有225人来访过

  • 芯币:1471
  • 好友:3
  • 主题:133
  • 回复:456
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


okhxyyo 2020-7-21
jinglixixi: 我的测评HT32F1653开发板一直没收到呀!
还没寄出去哦。你的收件信息是对的吧?明天会给寄出去
jinglixixi 2020-7-21
我的测评HT32F1653开发板一直没收到呀!
okhxyyo 2016-12-14
jinglixixi: 开发板已收到。
好的哈,那我等着你的测评文章拉
查看全部