DavidZH

  • 2019-10-20
  • 回复了主题帖: 请跟我来-DIY智能家居系统

    66666666666666666666666666666

  • 2019-10-13
  • 回复了主题帖: 基于micropython-1.9.4 ESP8266电机控制固件

    666666

  • 回复了主题帖: 还好内屏没坏

    哈哈,ST的开发板还是得加个套;

  • 2019-10-07
  • 发表了主题帖: 基于PSOC6的LIS2DW12的翻转开关;

    本帖最后由 DavidZH 于 2019-10-7 18:58 编辑        原理解析: 通过读取LIS2DW12不同位置时,XYZ轴的值,然后进行判断,比如X轴翻转后,进行开关,Y轴翻转后进行亮度的调节,亮度根据翻转的周数来控制;   1、初始化串口和LIS2DW12; //Uart_Init***************************************************************************// PSOC6_UART_Init(); //Uart_Init***************************************************************************// PSOC6_I2C_Init(); __enable_irq(); /* Enable global interrupts. */ lis2dw12_block_data_update_set(LIS2DW12_I2C_ADD_H, PROPERTY_ENABLE); lis2dw12_full_scale_set(LIS2DW12_I2C_ADD_H, LIS2DW12_8g); lis2dw12_filter_path_set(LIS2DW12_I2C_ADD_H, LIS2DW12_LPF_ON_OUT); lis2dw12_filter_bandwidth_set(LIS2DW12_I2C_ADD_H, LIS2DW12_ODR_DIV_4); lis2dw12_power_mode_set(LIS2DW12_I2C_ADD_H, LIS2DW12_CONT_LOW_PWR_LOW_NOISE_12bit); lis2dw12_data_rate_set(LIS2DW12_I2C_ADD_H, LIS2DW12_XL_ODR_25Hz);     2、读取LIS2DW12  XYZ的值: lis2dw12_status_reg_get(LIS2DW12_I2C_ADD_H, &reg.status); if(reg.status.drdy) { /* Read acceleration data */ memset(data_raw_acceleration.u8bit, 0x00, 3*sizeof(int16_t)); lis2dw12_acceleration_raw_get(LIS2DW12_I2C_ADD_H, data_raw_acceleration.u8bit); lis2dw12_read_reg(LIS2DW12_I2C_ADD_H, LIS2DW12_OUT_X_L, &Acc_XL, 1); lis2dw12_read_reg(LIS2DW12_I2C_ADD_H, LIS2DW12_OUT_X_H, &Acc_XH ,1); lis2dw12_read_reg(LIS2DW12_I2C_ADD_H, LIS2DW12_OUT_Y_L, &Acc_YL, 1); lis2dw12_read_reg(LIS2DW12_I2C_ADD_H, LIS2DW12_OUT_Y_H, &Acc_YH, 1); lis2dw12_read_reg(LIS2DW12_I2C_ADD_H, LIS2DW12_OUT_Z_L, &Acc_ZL, 1); lis2dw12_read_reg(LIS2DW12_I2C_ADD_H, LIS2DW12_OUT_Z_H, &Acc_ZH, 1); data_raw_acceleration.i16bit[0] = ((uint16_t)Acc_XH << 8) |((uint16_t)Acc_XL); data_raw_acceleration.i16bit[1] = ((uint16_t)Acc_YH <<8 ) |((uint16_t)Acc_YL); data_raw_acceleration.i16bit[2] = ((uint16_t)Acc_ZH <<8 ) |((uint16_t)Acc_ZL); acceleration_mg[0] = LIS2DW12_FROM_FS_8g_TO_mg( data_raw_acceleration.i16bit[0]); acceleration_mg[1] = LIS2DW12_FROM_FS_8g_TO_mg( data_raw_acceleration.i16bit[1]); acceleration_mg[2] = LIS2DW12_FROM_FS_8g_TO_mg( data_raw_acceleration.i16bit[2]); } 3、基于三轴加速度翻转算法简单演示:   if(cnt0 ==0) { acc_date[0] = data_raw_acceleration.i16bit[0]; acc_date[1] = data_raw_acceleration.i16bit[1]; acc_date[2] = data_raw_acceleration.i16bit[2]; }else{ cnt0 = 2; if(acc_date[0] != data_raw_acceleration.i16bit[0]) { if(acc_date[0] > data_raw_acceleration.i16bit[0]) { Position= acc_date[0] - data_raw_acceleration.i16bit[0]; if(Position > 0x1000) { acc_date[0] = data_raw_acceleration.i16bit[0]; Cy_GPIO_Write(Red_0_PORT,Red_0_NUM,1); Cy_GPIO_Write(Green_0_PORT,Green_0_NUM,1); Cy_GPIO_Write(Blue_0_PORT,Blue_0_NUM,1); } }else{ Position= data_raw_acceleration.i16bit[0] -acc_date[0]; if(Position > 0x1000) { acc_date[0] = data_raw_acceleration.i16bit[0]; Cy_GPIO_Write(Red_0_PORT,Red_0_NUM,0); Cy_GPIO_Write(Green_0_PORT,Green_0_NUM,0); Cy_GPIO_Write(Blue_0_PORT,Blue_0_NUM,0); } } } } CyDelay(500); 动图演示: 代码: 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处  

  • 2019-09-29
  • 回复了主题帖: “赞一赞我的国”:集合啦,侃侃好用的国产单片机

    新塘MCU, 可以搞起;

  • 回复了主题帖: 独家拆解 | 语音控制在真无线立体声TWS耳机上的创新应用

    拆拆拆, 看看怎么做, TKS;

  • 2019-09-24
  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的STTS751;

    附上工程,拍砖

  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的HTS221

    附上工程,仅供参考;

  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LSM6DSO

    附上工程,仅供参考;

  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LIS2DW12

    附上工程,仅供参考;

  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LPS22HH

    附上工程,仅供参考;  

  • 2019-09-18
  • 回复了主题帖: 有奖直播: C- V2X(车联网)测试挑战和解决方案,预约赢Keysight好礼

    已经报名,TKS

  • 回复了主题帖: 晒一下E币兑换的京东E卡

    可以,可以

  • 2019-09-05
  • 回复了主题帖: 开源一个STM32 USB手柄

    带RF吗??

  • 2019-09-01
  • 回复了主题帖: 2019年STM32全国巡回研讨会即将开启,现在报名赢三重礼

    报名;

  • 2019-08-30
  • 回复了主题帖: 三十而立---一穷二白,重新开始!!!

    本帖最后由 DavidZH 于 2019-8-30 23:03 编辑 你这仪器就好几十万了, 牛逼; 工作感觉是你的副业;哈哈,玩笑话;  祝老板创业成功, 有机会找我买芯片哦,多支持你

  • 回复了主题帖: CP2102与CH340的区别

     哈哈,CP2102 找我,CP2104, CP2108 都是好东西;

  • 2019-08-12
  • 回复了主题帖: 我的TPMS胎压监测的坎坷之路

    老板,快来找我们采购芯片;

  • 2019-08-10
  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LIS2DW12

    今天解析LIS2DW12, 模拟IIC接口,先验证ID: uint8_t LIS2DW12_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } printf("PID_LSM2 = %X\r\n",LIS2DW12_Read_Date(LIS2DW12_ADD, 0x0F)); 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处 补充内容 (2019-9-24 20:47): 附上工程

  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LSM6DSO

    本帖最后由 DavidZH 于 2019-8-10 23:09 编辑      今天解析LSM6DSO, 接口I模拟IIC, 驱动还是按照原来的, 验证读ID: uint8_t LSM6DSO_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } printf("PID_LSM = %X\r\n",LPS22HH_Read_Date(LSM6DSO_ADD, 0x0F)); 寄存器文件: 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

最近访客

< 1/3 >

统计信息

已有116人来访过

  • 芯币:899
  • 好友:1
  • 主题:66
  • 回复:1591
  • 课时:--
  • 资源:4

留言

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


DavidZH 2018-3-13
建议按照完整版,
zhengbang 2018-3-6
您好,我在配置Visual Studio :时,工具栏里没有Embeded Tools Manager,
请问这是什么情况,百度也没找到,文档也没找到。
升级VS2017也没有Embeded Tools Manager选项。  请问能帮忙吗  谢谢
查看全部