AS5047P STM32CubeMX HAL库 调试

news2025/2/23 2:40:10

AS5047P STM32CubeMX HAL库 调试

  • 1. AS5047使用说明
    • 1.1 电源连接
    • 1.2 SPI数据格式
    • 1.3 AS5047P相关寄存器
  • 2. STM32CubeMX 配置SPI
    • 2.1 两种SPI读取方式
      • 参考

1. AS5047使用说明

1.1 电源连接

  • 可以选择两种供电方式:3.3V或者5V
    在这里插入图片描述

1.2 SPI数据格式

在这里插入图片描述

1.3 AS5047P相关寄存器

  • volatile registers
    在这里插入图片描述
  • Non-Volatile registers
    在这里插入图片描述

2. STM32CubeMX 配置SPI

这里我使用的是SPI3,具体配置如下:需要注意两点:

  • 波特率<10MHz
  • CRC 校验必须关闭:因为STM32的SPI使用CRC校验时,会在原始数据后面再发送一帧CRC校验帧。而AS5047P使用最高位CRC奇偶校验,两者是冲突的。如果需要CRC校验,需要自己写相关校验程序。可以参考AS5047p STM32CubeMX SPI HAL库 程序开发
    在这里插入图片描述

2.1 两种SPI读取方式

  1. 使用CRC校验
#define     ANGLEUNC    0x3FFE  //measured angle without dynamic angle error compensation
uint16_t AS5047_read(uint16_t register_add)
{
    uint16_t data;
    register_add |= 0x4000; //读指令 bit14 置1
    if(Parity_bit_Calculate(register_add) == 1)
        register_add = register_add | 0x8000;     //如果前15位 1的个数位奇数,则Bit15 置1
    SPI_ReadWrite_16bit(register_add);    //发送一条指令,不管返回的数据
    data = SPI_ReadWrite_16bit(NOP | 0x4000); //发送一条空指令,读取上一次指令返回的数据
    data &= 0x3FFF;
    return  data;
}

void main(void)
{
	uint16_t  rawData = AS5047_read(ANGLEUNC);
}
  1. 不使用CRC校验
/**
  * @brief  AS5047P读取原始数据,不使用CRC校验,直接丢弃校验码
  *    data   [15]   [14]   [13:0]
  *           CRC 1  read 1  ANGLECOM 3FF measured angle with dynamic angle error compensation
  * @retval 返回读取的角度数据
  */
uint16_t AS5047_read_NCRC(void)
{
    //直接发送0xFFFF,
    return SPI_ReadWrite_16bit(0xFFFF);
}

void main(void)
{
	uint16_t  rawData = AS5047_read_NCRC();
}

参考

  1. AS5047p STM32CubeMX SPI HAL库 程序开发

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

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

相关文章

高程-类和对象

面向对象编程(OOP) 特征:抽象、多态、封装、继承 类 既然有结构体struct了,那么使用类class的好处是什么呢?C中struct的成员可以任意访问,对于一些隐私信息是不允许的。为了保护类中的数据安全&#xff…

Ubuntu系统使用Docker本地部署Android模拟器并实现公网访问

文章目录 1. 虚拟化环境检查2. Android 模拟器部署3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问小结 6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Ubuntu系统使用Docker部署docker-android安卓模拟器,并结合cpolar内网穿透工具实现公网远程访问本地…

为什么要纯C语言手搓GPT-2,Karpathy回应网友质疑

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 几天前,前特斯拉 Autopilot 负责人、OpenAI 科学家 Andrej Karpathy 发布了一个仅…

RAGFlow:基于OCR和文档解析的下一代 RAG 引擎

一、引言 在人工智能的浪潮中,检索增强生成(Retrieval-Augmented Generation,简称RAG)技术以其独特的优势成为了研究和应用的热点。RAG技术通过结合大型语言模型(LLMs)的强大生成能力和高效的信息检索系统…

消息队列之-----------------zookeeper机制

目录 一、ZooKeeper是什么 二、ZooKeeper的工作机制 三、ZooKeeper特点 四、ZooKeeper数据结构 五、ZooKeeper应用场景 5.1统一命名服务 5.2统一配置管理 5.3统一集群管理 5.4服务器动态上下线 5.5软负载均衡 六、ZooKeeper的选举机制 6.1第一次启动选举机制 6.2非…

怎么区分开关电源的PFM与PWM模式?

原文来自微信公众号:工程师看海,与我联系:chunhou0820 看海原创视频教程:《运放秘籍》 大家好,我是工程师看海。 DCDC开关电源有两种常见的工作模式,就是我们常听说的PWM模式和PFM模式,一种是普…

算法训练营第二十三天(二叉树完结)

算法训练营第二十三天(二叉树完结) 669. 修剪二叉搜索树 力扣题目链接(opens new window) 题目 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>L) 。你可能需要改…

2024年第十七届 认证杯 网络挑战赛 (A题)| 保暖纤维的保暖能力 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看认证杯 网络挑战赛 (A题)&#xff01…

两数相加(leetcode)

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …

基于Java的图书借阅网站, java+springboot+vue开发的图书借阅管理系统 - 毕业设计 - 课程设计

基于Java的图书借阅网站, javaspringbootvue开发的图书借阅管理系统 - 毕业设计 - 课程设计 文章目录 基于Java的图书借阅网站, javaspringbootvue开发的图书借阅管理系统 - 毕业设计 - 课程设计一、功能介绍二、代码结构三、部署运行1、后端运行步骤2、…

社会工程学——setoolkit的简单使用(克隆钓鱼网站)

Social Engineer Toolkit(SET)是一个开源的社会工程学攻击工具包,旨在模拟和执行多种社会工程学攻击,例如钓鱼、恶意软件传播和其他形式的社会工程学攻击。SET由David Kennedy(也被称为"ReL1K")开…

ubuntu20.04下搜狗输入法的安装

1、安装 fcitx 输入法的框架 sudo apt install fcitx-bin sudo apt-get install fcitx-table 2、Ubuntu下的默认浏览器火狐搜索 搜狗输入法 搜狗输入法linux-首页 (下载x86_64) 3、安装依赖 sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-modu…

取数游戏(dfs)

前言&#xff1a; 该题取自洛谷P1123&#xff0c;题主用的dfs&#xff08;深度优先搜索&#xff09; 题目描述&#xff1a; 数据范围&#xff1a; 思路&#xff1a; 思路见代码&#xff0c;注释的很清晰嗷 AC代码&#xff1a; #include <iostream> #include <alg…

【学习笔记】R语言入门与数据分析1

数据分析 数据分析的过程&#xff1a; 数据采集 数据存储 数据分析 数据挖掘 数据可视化 进行决策 数据挖掘 数据量大 复杂度高&#xff0c;容忍一定的误差限 追求相关性而非因果性 数据可视化 直观明了 R语言介绍 R是免费的&#xff08;开源软件、扩展性好&#xff09;…

PlanUML和Mermaid哪个好?

引言 在当今信息化快速发展的时代&#xff0c;数据可视化和图表工具不仅对于程序员&#xff0c;也对于非技术背景的人士至关重要。绘图工具可以帮助我们更好地理解和表达复杂的概念或数据流。PlantUML和Mermaid是两款被广泛使用的绘图语言&#xff0c;它们都能够通过简洁的文本…

4.11学习总结

一.IO流 一.java中IO的初步了解 (一).概念: Java中I/O操作主要是指使用Java进行输入&#xff0c;输出操作. Java所有的I/O机制都是基于数据流进行输入输出&#xff0c;这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据…

基于Python豆瓣电影数据可视化分析系统的设计与实现

大数据可视化项目——基于Python豆瓣电影数据可视化分析系统的设计与实现 2024年4月最新编写的新项目 项目介绍 本项目旨在通过对豆瓣电影数据进行综合分析与可视化展示&#xff0c;构建一个基于Python的大数据可视化系统。通过数据爬取收集、清洗、分析豆瓣电影数据&#xff…

【SpringBoot】SpringBoot项目快速搭建

本文将介绍Springboot项目的快速搭建 快速创建SpringBoot项目 打开IDEA在File->New->Project中新建项目 点击左侧的Spring Initializr 输入以下信息&#xff1a; Name 项目名称Group 根据公司域名来&#xff0c;或者默认com.example【倒序域名】Package Name 包名&am…

【java探索之旅】走进循环结构 深入解析while、for和do while的用法

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java编程秘籍 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、循环结构1.1 while循环1.2 while代码示例1.3 break1.4 continue 二、for循环2.1 基…

蓝桥杯第十一届c++大学B组详解

目录 1.字符串排序 2.门牌制作 3.即约分数 4.蛇型填数 5.跑步锻炼 6.七段码 7.成绩统计 8.回文日期 9.字串分值和 10.平面切分 1.字符串排序 题目解析&#xff1a;这个题目真没搞懂。有会的大佬教我一下谢谢。 2.门牌制作 题目解析&#xff1a;出过超级多这类题目&am…