当前位置: 首页 > news >正文

给网站做灰盒渗透测试需要哪些数据淄博网站seo

给网站做灰盒渗透测试需要哪些数据,淄博网站seo,如何创建微网站,课程网站建设的财务分析HAL STM32 I2C方式读取MT6701磁编码器获取角度例程 📍相关篇《Arduino通过I2C驱动MT6701磁编码器并读取角度数据》🎈《STM32 软件I2C方式读取MT6701磁编码器获取角度例程》📌MT6701当前最新文档资料:https://www.magntek.com.cn/u…

HAL STM32 I2C方式读取MT6701磁编码器获取角度例程


  • 📍相关篇《Arduino通过I2C驱动MT6701磁编码器并读取角度数据》
  • 🎈《STM32 软件I2C方式读取MT6701磁编码器获取角度例程》
  • 📌MT6701当前最新文档资料:https://www.magntek.com.cn/upload/MT6701_Rev.1.8_%E4%B8%AD%E6%96%87%E7%89%88.pdf
  • 🔰MT6701芯片和AS5600从软件读取对比,只是读取的寄存器和访问的设备地址不同而已,所以稍作修改即可实现通用一个驱动模板。

📙MT6701 IIC接口电路

在这里插入图片描述
在这里插入图片描述

  • 🔖 第八引脚,直接接到VCC,或者增加上拉电阻也可以。

⛳MT6701 I2C 读取角度操作

MT6701做为I2C从机的地址是b’0000110(这一地址可以通过编程改为b’1000110 )。14位绝对角度数据(2的14次方,16384)保存在0x03和0x04寄存器中,请按照如图-20所示的读取0x03和0x04的角度数据。
注意:要先读0x03,再读0x04。
在这里插入图片描述

⛳注意事项

  • ✨在MT6701芯片和径向磁铁一定要保持稳定的空间距离,一旦空间距离有较大的变化,在读取MT6701芯片寄存器数据就可能出现最大值情况。在检测时,芯片和径向磁铁轴向和径向都需要相对稳定。
    在这里插入图片描述
  • 🌟在选择通讯线材上,尽量选择好一点的线材,如果使用杜邦线连接,最好将连接线独立分开的单根进行连接,不要使用并排的杜邦线进行连接,对使用硬件I2C通讯有很大的影响。甚至读取不到,软件方式对这方面要求没有这么高。

📒EEPROM编程

  • 🌿相关寄存器位:
    在这里插入图片描述
  • 📜编程步骤:
    在这里插入图片描述

📓STM32CubeMX配置

  • 🌿选择一个I2C接口:(快速模式:400KHz,普通模式:100KHz)
    在这里插入图片描述

📙业务代码

  • 🌿对I2C设备地址扫描实现:
	printf("Scanning I2C bus:\r\n");HAL_StatusTypeDef result;for (uint8_t i=1; i<255; i++){/** the HAL wants a left aligned i2c address* &hi2c1 is the handle* (uint16_t)(i<<1) is the i2c address left aligned* retries 2	重复次数* timeout 20    超时MT6701 i2c address:(0xC = 0x6 << 1)*/result = HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(i<<1), 2, 20);//	  result = HAL_I2C_Master_Transmit(&hi2c1,(uint16_t)i<<1,0,0,20); //同上if (result != HAL_OK) // HAL_ERROR or HAL_BUSY or HAL_TIMEOUT{printf("."); // No ACK received at that address}if (result == HAL_OK){printf("0x%X", i); // Received an ACK at that address}}printf("\r\n");

在这里插入图片描述

  • 可以扫描到3个地址,其中第一个0x6为MT6701真正的地址。
  • 🌿读取角度数据实现:
/*	SlaveAddress:0x6<<1 * IIC 方式读取角度信息* 返回数据为 0 ~ 360 之间的浮点数*/
float Read_Angle(void)
{uint32_t angle = 0;float fangle = 0.0f;uint8_t ReadBuffer1,ReadBuffer2;HAL_I2C_Mem_Read(&hi2c1,0xc,0x3,I2C_MEMADD_SIZE_8BIT,&ReadBuffer1,1,0XFF);angle = ReadBuffer1;angle <<= 8;HAL_I2C_Mem_Read(&hi2c1,0xc,0x4,I2C_MEMADD_SIZE_8BIT,&ReadBuffer2,1,0XFF);angle += ReadBuffer2;angle >>= 2;            //取数据高 14 位fangle = (float)(angle * 360.0f) / 16384.0f;return fangle;
}
  • 🌿方向读取
#define DIR_RES    0X29        //数据高位寄存器地址
uint8_t Read_DIR(void)
{uint8_t  DIR=0;HAL_I2C_Mem_Read(&hi2c1,SlaveAddress,DIR_RES,I2C_MEMADD_SIZE_8BIT,&DIR,1,0XFF);return (DIR&0x2);
}
  • 🌿ABZ输出分辨率(脉冲圈)读取
#define Abz_ResH    0X30        //数据高位寄存器地址
#define Abz_ResL    0X31        //数据低位寄存器地址
uint16_t Read_ABZ(void)
{uint16_t AbzRes = 0;uint8_t ReadBuffer1,ReadBuffer2;HAL_I2C_Mem_Read(&hi2c1,SlaveAddress,Abz_ResH,I2C_MEMADD_SIZE_8BIT,&ReadBuffer1,1,0XFF);AbzRes = ReadBuffer1&0x3;AbzRes <<= 8;HAL_I2C_Mem_Read(&hi2c1,SlaveAddress,Abz_ResL,I2C_MEMADD_SIZE_8BIT,&ReadBuffer2,1,0XFF);AbzRes += ReadBuffer2;return AbzRes;
}
  • 🌿通过 EEPROM编程,改变编码器方向。(默认是逆时针递增)
void programmEEPROM(void)
{uint8_t  DIR=0;uint8_t KEY1=0xB3;uint8_t KEY2=0x05;HAL_I2C_Mem_Read(&hi2c1,SlaveAddress,DIR_RES,I2C_MEMADD_SIZE_8BIT,&DIR,1,0XFF);DIR ^= 1<<1;  //方向翻转HAL_I2C_Mem_Write(&hi2c1,SlaveAddress,DIR_RES,I2C_MEMADD_SIZE_8BIT,&DIR,1,0XFF);HAL_I2C_Mem_Write(&hi2c1,SlaveAddress,0x09,I2C_MEMADD_SIZE_8BIT,&KEY1,1,0XFF);HAL_I2C_Mem_Write(&hi2c1,SlaveAddress,0x0A,I2C_MEMADD_SIZE_8BIT,&KEY2,1,0XFF);HAL_Delay(800);}

在这里插入图片描述
在这里插入图片描述

  • 📝测试代码
int main(void)
{/* USER CODE BEGIN 1 */int16_t angle;float angle_f;uint8_t  dir=0;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */printf("Scanning I2C bus:\r\n");HAL_StatusTypeDef result;for (uint8_t i=1; i<255; i++){/** the HAL wants a left aligned i2c address* &hi2c1 is the handle* (uint16_t)(i<<1) is the i2c address left aligned* retries 2	重复次数* timeout 20    超时MT6701 i2c address:(0xC = 0x6 << 1)*/
// 	  result = HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(i<<1), 2, 20);result = HAL_I2C_Master_Transmit(&hi2c1,(uint16_t)i<<1,0,0,20); //同上if (result != HAL_OK) // HAL_ERROR or HAL_BUSY or HAL_TIMEOUT{printf("."); // No ACK received at that address}if (result == HAL_OK){printf("0x%X", i); // Received an ACK at that address}}printf("\r\n");dir = Read_DIR() ;printf("DIR:%d",dir);HAL_Delay(200);	
#if defined(PROGRAM_ENABLE)printf("-------------------- MT6701 programm test --------------------\r\n");programmEEPROM();
#endifHAL_Delay(3000);dir = Read_DIR() ;printf("-------------------- MT6701 angle test --------------------\r\n");/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */
//		i2c_mt6701_get_angle(&angle, &angle_f);
//		printf("angle = %d\t%.03f\r\n", angle, angle_f);
//		angle_f = Read_Angle();
//		printf("angle= %.1f\r\n",  angle_f);i2c_mt6701_get_angle(&angle, &angle_f);uint16_t AbzRes = Read_ABZ();		printf("Raw_Angle = %d\tAngle:%.1f,AbzRes:%d DIR:%d\r\n", angle, angle_f,AbzRes,dir);HAL_Delay(500);HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);}/* USER CODE END 3 */
}

📚测试工程

  • 🌿硬件I2C方式
链接:https://pan.baidu.com/s/1l4gElhcqn6mg6cWYaHG4Wg?pwd=kuub 
提取码:kuub
  • 🌿硬件I2C中断方式
链接:https://pan.baidu.com/s/1W2vZRmQPNe4VU6dKFc9xJQ?pwd=tzfl 
提取码:tzfl
http://www.jinmujx.cn/news/115767.html

相关文章:

  • b2b网络推广哈尔滨优化调整人员流动管理
  • 360免费做网站电话营销培训课程内容
  • 游戏是怎么做的视频网站南昌seo快速排名
  • 网站嵌入js站长之家是什么
  • 网络设计报告3000软媒win7优化大师
  • 施工企业的定义深圳百度seo公司
  • 国内网站建设建设女生seo专员很难吗为什么
  • 查看网站建设工作微信crm系统
  • 网站建设wangzhii搜索引擎优化自然排名的优点
  • 网站建设与搜索引擎营销有什么关系seo推广专员
  • 营销型网站 易网拓怎么成为百度推广代理商
  • 住房城乡与建设厅网站首页360网站推广客服电话
  • 专业网站设计如何提升网页品质如何在百度发广告
  • 中国建设教育业协会网站最简单的网页制作
  • 做设计在哪个网站投递简历网络营销公司哪家可靠
  • 做网站选择什么服务器简述影响关键词优化的因素
  • 深圳网站建设sz886北京seo网站优化培训
  • 可以做积分的网站搜索推广广告
  • 建站公司都是用什么建站工具东莞seo建站公司哪家好
  • 广西网站建设价格网站seo收录工具
  • 免费网站建设站重庆seo网站排名
  • 手机端什么可以替代迅雷廊坊百度提升优化
  • 网站建设代码容易出错石家庄seo外包的公司
  • 湖北智能网站建设找哪家媒体代发网站
  • 电子商务网站名字百度大数据分析平台
  • 惠州网站建设一般多少钱网页设计一般用什么软件
  • 百度推广 网站建设奶茶软文案例300字
  • 网站前端切图做多个页面seo快速排名软件首页
  • WordPress邮箱验证登录seo外链平台热狗
  • 秦皇岛北京网站建设百度推广开户联系方式