DRV8301/8303代码讲解
首先声明一点:drv8301和03代码SPI部分一模一样,区别只是01多了几个引脚因此多了几个状态检测。
SPI需要配置成16位SPI,配置代码参考我另一篇AS5048A,SPI一模一样,不需要做任何修改,此SPI初始化完成则可以保证可以正常读写DRV8301/03,需要注意的一点是drv8301/03必须要使能EN_GATE脚SPI才可以正常使用,即,EN_GATE = 1;
u16 spi3readwritebyte(u16 TxData)
{while (SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE) == RESET){}//µÈ´ý·¢ËÍÇø¿ÕSPI_I2S_SendData(SPI3, TxData); //ͨ¹ýÍâÉèSPIx·¢ËÍÒ»¸öbyte Êý¾Ýwhile (SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_RXNE) == RESET){} //µÈ´ý½ÓÊÕÍêÒ»¸öbytereturn SPI_I2S_ReceiveData(SPI3); //·µ»Øͨ¹ýSPIx×î½ü½ÓÊÕµÄÊý¾Ý
}//u16 spi_drv8303_write(u16 TxData)
//{
// GPIO_ResetBits(GPIOC,GPIO_Pin_13);
// spi3readwritebyte(TxData);
// GPIO_SetBits(GPIOC,GPIO_Pin_13);
// delay_us(10);
//}uint16_t m0_spi_drv8303_read(uint16_t TxData)
{uint16_t data;GPIO_ResetBits(GPIOC,GPIO_Pin_13);spi3readwritebyte(TxData);GPIO_SetBits(GPIOC,GPIO_Pin_13);delay_us(10);GPIO_ResetBits(GPIOC,GPIO_Pin_13);data = spi3readwritebyte(TxData);GPIO_SetBits(GPIOC,GPIO_Pin_13);return data;
}
//下面为寄存器配置,最下面四行为读取四个寄存器,上面为写寄存器,具体你需要怎么配置根据个人需求进行选择drv8303_reg_read[0] = (DRV8301_REG2<<11)|GATE_CURRENT_0_7_A|GATE_RESET_NOMAL|PWM_MODE_6_INPUTS|OCP_LATCH_SHUT_DOWN|OC_ADJ_SET_14;drv8303_reg_read[1] = (DRV8301_REG3<<11)|OCTW_OT_ONLY|GAIN_AMP_80|DC_CAL_CH1_CON|DC_CAL_CH2_CON|OC_TOFF_CYCLE;m0_spi_drv8303_read(drv8303_reg_read[0]);delay_ms(100);m0_spi_drv8303_read(drv8303_reg_read[1]);delay_ms(100);drv8303_reg_read[0] = m0_spi_drv8303_read((DRV8301_REG0<<11)|0x8000);delay_ms(100);drv8303_reg_read[1] = m0_spi_drv8303_read((DRV8301_REG1<<11)|0x8000);delay_ms(100);drv8303_reg_read[2] = m0_spi_drv8303_read((DRV8301_REG2<<11)|0x8000);delay_ms(100);drv8303_reg_read[3] = m0_spi_drv8303_read((DRV8301_REG3<<11)|0x8000);delay_ms(100);
只使用m0_spi_drv8303_read即可以读写
下面链接为drv83的数据手册
https://www.ti.com.cn/cn/lit/ds/symlink/drv8303.pdf?ts=1652255255976&ref_url=https%253A%252F%252Fwww.ti.com.cn%252Fsitesearch%252Fzh-cn%252Fdocs%252Funiversalsearch.tsp%253FlangPref%253Dzh-CN%2526searchTerm%253Ddrv8303%2526nr%253D282
具体需要如何配置可参考,详细内容芯片手册有讲解,按照我那样配置也可以正常使用
DRV8301/8303代码讲解相关推荐
- 手把手教你如何做建模竞赛(baseline代码讲解)
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.大赛背景 随着科技发展,银行陆续打造了线上线下.丰富多样的客户触 ...
- 【资源】Faster R-CNN原理及代码讲解电子书
<Faster R-CNN原理及代码讲解>是首发于GiantPandaCV公众号的教程,针对陈云大佬实现的Faster R-CNN代码讲解,Github链接如下: https://gith ...
- 激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
应用背景介绍 自主导航是机器人与自动驾驶的核心功能,而SLAM技术是实现自主导航的前提与关键.现有的机器人与自动驾驶车辆往往会安装激光雷达,相机,IMU,GPS等多种模态的传感器,而且已有许多优秀的激 ...
- 彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
应用背景介绍 自主导航是机器人与自动驾驶的核心功能,而SLAM技术是实现自主导航的前提与关键.现有的机器人与自动驾驶车辆往往会安装激光雷达,相机,IMU,GPS等多种模态的传感器,而且已有许多优秀的激 ...
- 彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
视觉三维重建 = 定位定姿 + 稠密重建 + surface reconstruction +纹理贴图.三维重建技术是计算机视觉的重要技术之一,基于视觉的三维重建技术通过深度数据获取.预处理.点云配准 ...
- mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解
sqlserver多表联合查询和多表分页查询的代码讲解 发布时间:2020-05-14 14:42:07 来源:亿速云 阅读:700 作者:Leah 这篇文章主要为大家详细介绍了sqlserver多表 ...
- python中的object是什么意思_Python object类中的特殊方法代码讲解
python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...
- 三层代码讲解--第一课
主题:三层代码讲解--第一课 主持人:老吴 时间:2004-05-24 2004-05-24 10:47:00 天之痕_若虹(86278566) 請教大家一個問題好嗎 2004-05-24 10:47 ...
- WPF第一章(XAML前台标记语言(Chapter02代码讲解))
XAML前台标记语言(Chapter2代码讲解) 很不好意思,工作有点忙,博客停了两天.相对于一门语言的学习,理论知识和实践必不可少,大多数时间我们要用,对于代码也是,一边不行可以看两遍,实在 ...
最新文章
- UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順
- const 和 static 的作用
- springmvc学习笔记(19)-RESTful支持
- Linux系统中df与du命令查看分区大小
- CentOS7.4到Elasticsearch一路坑(八)(坑没填上)
- STSdb,最强纯C#开源NoSQL和虚拟文件系统
- python全局变量可以改变吗_在Python中避免我的全局变量,我有几个函数可以改变一个变量...
- 网页页面禁止用户复制源代码
- java学习笔记—标准连接池的实现(27)
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
- Java面试八股文 2021年最新Java面试题及答案汇总
- 利用OPNET进行网络单播(一服务器多客户端)仿真的设计、配置及注意点
- 微信公众号python开发_用python如何开发微信公共帐号?
- 机器学习中的隐变量和隐变量模型
- sa-token进阶
- 物联网还有哪些创业机会?
- 阿里的1001个错误:盲目相信空降兵,做死雅虎中国
- 嵌入式软件工程师面试需要的linux知识点
- 微信小程中wx.requert请求外部数据和.NET Core 发布服务支持https
- 零基础学CocosCreator·第七季-制作一款塔防游戏