STM32 软件I2C方式读取AS5600磁编码器获取角度例程

STM32 软件I2C方式读取AS5600磁编码器获取角度例程


  • 🔖本例程使用正点原子例程作为工程模板创建。

📘 硬件电路部分

  • 🌿原理图部分:
    在这里插入图片描述

  • 🌿PCB布线和电路
    在这里插入图片描述

  • ✨注意事项:有些硬件需要I2C上拉,否则检测不到设备。软件I2C方式没有上拉的情况下,需要将IO口配置为推挽输出模式才行,没有上拉情况下,开漏模式可能访问不到。

📙驱动代码部分

int main(void)
{u16 i = 0;u16 raw_num = 0;u16 JIAODUnum = 0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2delay_init(); //延时函数初始化uart_init(9600);	//串口初始化为9600LED_Init();	//初始化与LED连接的硬件接口IIC_Init();while(1) {delay_ms(10);if(++i > 100) {raw_num = AS5600_ReadTwoByte(_raw_ang_hi, _raw_ang_lo); //读取两个寄存器的值JIAODUnum = (raw_num * 360) / 4096; //对寄存器值进行处理得到角度值printf("AS5600 Angle:%d \r\n", JIAODUnum);LED0 = !LED0; //提示系统正在运行i = 0;}}
}
  • 🌿读取效果:
    在这里插入图片描述

📚测试代码

  • 🔖基于stm32f103标准库实现.
链接:https://pan.baidu.com/s/1jmWxyHLhXFY_c5sJyndkmg?pwd=hk0h 
提取码:hk0h

📒i2c地址扫描

  • 🌿基于HAL STM32F1硬件I2C扫描从设备地址:https://blog.csdn.net/weixin_42880082/article/details/131869827

  • 🌿基于Arduino rp2040 I2C扫描程序代码


#include <Wire.h>void setup()
{// Wire.begin();Serial.begin(115200);while (!Serial);             // Leonardo: wait for serial monitorSerial.println("\nI2C Scanner");Wire.setSDA(8);Wire.setSCL(9);Wire.begin();
}void loop()
{byte error, address;int nDevices;Serial.println("Scanning...");nDevices = 0;for(address = 1; address < 127; address++ ) {// The i2c_scanner uses the return value of// the Write.endTransmisstion to see if// a device did acknowledge to the address.Wire.beginTransmission(address);//从指定的地址开始向I2C从设备进行传输error = Wire.endTransmission();//停止与从机的数据传输/** error返回结果:* 0: 成功
1: 数据量超过传送缓存容纳限制
2: 传送地址时收到 NACK
3: 传送数据时收到 NACK
4: 其它错误*/if (error == 0){Serial.print("I2C device found at address 0x");if (address<16) Serial.print("0");Serial.print(address,HEX);Serial.println("  !");nDevices++;}else if (error==4) {Serial.print("Unknown error at address 0x");if (address<16) Serial.print("0");Serial.println(address,HEX);}    }if (nDevices == 0)Serial.println("No I2C devices found\n");elseSerial.println("done\n");delay(5000);           // wait 5 seconds for next scan
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

校园局域网钓鱼实例

Hello &#xff01; 我是"我是小恒不会java" 本文仅作为针对普通同学眼中的网络安全&#xff0c;设计的钓鱼案例也是怎么简陋怎么来 注&#xff1a;本文不会外传代码&#xff0c;后端已停止使用&#xff0c;仅作为学习使用 基本原理 内网主机扫描DNS劫持前端模拟后端…

HTTP和tcp的区别

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和TCP&#xff08;Transmission Control Protocol&#xff09;是互联网通信中的两个不同层次的协议&#xff0c;它们之间有着以下区别&#xff1a; 层次不同&#xff1a; TCP是传输层协议&#xff0c;负责在网络上可靠…

【2023】kafka入门学习与使用(kafka-2)

目录&#x1f4bb; 一、基本介绍1、产生背景2、 消息队列介绍2.1、消息队列的本质作用2.2、消息队列的使用场景2.3、消息队列的两种模式2.4、消息队列选型&#xff1a; 二、kafka组件1、核心组件概念2、架构3、基本使用3.1、消费消息3.2、单播和多播消息的实现 4、主题和分区4.…

大模型与数据分析:探索Text-to-SQL

当今大模型如此火热&#xff0c;作为一名数据同学&#xff0c;持续在关注LLM是如何应用在数据分析中的&#xff0c;也关注到很多公司推出了AI数智助手的产品&#xff0c;比如火山引擎数智平台VeDI—AI助手、 Kyligence Copilot AI数智助理、ThoughtSpot等&#xff0c;通过接入人…

Node.js的Event Loop:六个阶段详解

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

括号生成(回溯+剪枝)

22. 括号生成 - 力扣&#xff08;LeetCode&#xff09; 题目描述 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 样例输入 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))&q…

五年前端的面试之旅

哈喽我是树酱&#xff0c;最近整理了下前端面试相关的知识题库&#xff0c;借此分享给各位小伙伴&#xff0c;帮助小伙伴早日拿到钟意的offer&#xff01; 前言 最近就业市场不景气&#xff0c;跟大环境较差也有关&#xff0c;确实给我们也会带来一定的挑战。在招聘网站投简历的…

数据仓库的发展历程

数据仓库的概念可以追溯到20世纪60年代,但真正形成理论并被企业广泛应用还需要一个较长的发展过程。大致可以分为以下几个阶段: 决策支持系统(DSS)时期(1960s-1970s) 这一时期,随着管理信息系统(MIS)和电子计算机的兴起,企业开始尝试构建面向决策的数据处理系统。最初的决策支…

python批量转化pdf图片为jpg图片

1.把pdf图片批量转为jpg&#xff1b;需要注意的是&#xff0c;需要先安装poppler这个软件&#xff0c;具体安装教程放在下面代码中了 2.代码 #poppler安装教程参考&#xff1a;https://blog.csdn.net/wy01415/article/details/110257130 #windows上poppler下载链接&#xff1a…

从零开始机器学习(机器学习 监督学习之线性回归 损失函数及可视化 梯度下降 线性回归的平方误差损失函数 lab实验)

文章目录 机器学习定义监督学习之线性回归损失函数及可视化梯度下降线性回归的平方误差损失函数lab实验 机器学习定义 机器学习就是机器通过不断训练数据集从逐渐知道正确的结果 机器学习包括监督学习和非监督学习 监督学习&#xff1a;需要输入数据和结果数据来不断训练学习…

Java-常见面试题收集(八)

十五 JDBC 1 JDBC 访问数据库的基本步骤 加载驱动&#xff0c;通过 DriverManager 对象获取连接对象 Connection&#xff0c;通过连接对象获取会话&#xff0c;通过会话进行数据的增删改查封装对象&#xff0c;关闭资源 2 PreparedStatement 和 Statement 的区别 PreparedSta…

linux0.11中jmpi 0,8解析

系统在执行该行代码时已经为保护模式, jmpi 0,8会将段选择子(selector)载入cs段寄存器&#xff0c;并计算出逻辑地址。 段选择子的结构如下&#xff1a; 段选择子包括三部分&#xff1a;描述符索引&#xff08;index&#xff09;、TI、请求特权级&#xff08;RPL&#xff09;。…

SpringMVC常见面试题

1&#xff1a;Spring mvc执行流程 回答&#xff1a; 版本1&#xff1a;视图版本&#xff0c;jsp 用户发送出请求到前端控制器DispatcherServletDispatcherServlet收到请求调用HandlerMapping(处理映射器)HandlerMapping找到具体的处理器&#xff0c;生成处理器对象及处理器拦…

ajax的优缺点有哪些?

我们先来介绍一下什么是ajax&#xff1a; 对于ajax的理解&#xff0c;ajax是一种使用现有技术集合技术内容包括: HTML或XHTML、CSS、 JavaScript、DOM、XML、 XSLT&#xff0c; 以及最重要的XMLHttpRequest。 用于浏览器与服务器之间使用异步数据传输(HTTP请求)&#xff0c;做…

二十四种设计模式与六大设计原则(一):【策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式】的定义、举例说明、核心思想、适用场景和优缺点

目录 策略模式【Strategy Pattern】 定义 举例说明 核心思想 适用场景 优缺点 代理模式【Proxy Pattern】 定义 举例说明 核心思想 适用场景 优缺点 单例模式【Singleton Pattern】 定义 举例说明 核心思想 适用场景 优缺点 多例模式【Multition Pattern】…

C# 微软官方学习文档

链接&#xff1a;https://learn.microsoft.com/zh-cn/dotnet/csharp/ 在C#的学习过程中&#xff0c;我们可以参考微软官方的学习文档。它是一个免费的学习平台&#xff0c;提供了丰富的C#学习路径和教程&#xff08;如下图&#xff09;&#xff0c;对我们入门到高级应用开发都…

PhpWord导入试题

规定word导入格式 1、[单选题][2024][一般]题目1 A.选项1 B.选项2 C.选项3 D.选项4 答案&#xff1a;D 试题图片&#xff08;上传多媒体图片&#xff09;&#xff1a; 分数&#xff1a;2 答案解析&#xff1a; 2、[多选题][2024][困难]题目2 A.选项1 B.选项2 C.选项3 D.选项4 E…

专升本-人工智能(AI)

人工智能&#xff08;AI&#xff09;&#xff1a; 什么是人工智能&#xff1a;&#xff08;总结&#xff1a;感知&#xff0c;获取&#xff0c;得出&#xff08;结论&#xff0c;执行&#xff09;&#xff09; 运用数理逻辑和计算机成果&#xff0c;提供关于形式化计算和处理…

Math常用方法,什么是math?

首先我们先来介绍一下什么是math&#xff1f; Math是一个内置对象&#xff0c;具有数学常数和函数的属性和方法&#xff0c;不是一个函数对象&#xff0c; 数学是一个内置对象&#xff0c;具有数学常数和函数的属性和方法&#xff0c;不是一个函数对象Math适用于Number类型&…

微服务篇-C 深入理解第一代微服务(SpringCloud)_VIII 深入理解Bus消息总线

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载 Part 1 理论部分 1 配置文件如何刷新&#xff1f; 在SpringCloud中&#xff0c;配置文件的刷新有手动刷新和实时刷新两种方式。 手动刷新使…