前言

本驱动程序基于STM32CubeMX制作,经测试可正常记录并读写MB85RS128数据。


一、STM32CubeMX配置

1.时钟配置

2.GPIO配置

选择PB0作MB85RS128的CS引脚

3.SPI配置

选择SPI1作通讯

二、编写驱动

1.添加相关宏定义及函数声明

在spi.h头文件添加如下定义及函数声明:

#define MB85RS128_CMD_WREN       0x06
#define MB85RS128_CMD_WRDI      0x04
#define MB85RS128_CMD_RDSR      0x05
#define MB85RS128_CMD_WRSR      0x01
#define MB85RS128_CMD_READ      0x03
#define MB85RS128_CMD_WRITE     0x02
#define MB85RS128_CMD_NULL    0x00
#define MB85RS128_CMD_RDID      0x9f#define MB85_CS_PIN     GPIO_PIN_0
#define MB85_CS_PORT    GPIOB
#define MB85_CS_SET     HAL_GPIO_WritePin(MB85_CS_PORT, MB85_CS_PIN, GPIO_PIN_SET)
#define MB85_CS_CLR     HAL_GPIO_WritePin(MB85_CS_PORT, MB85_CS_PIN, GPIO_PIN_RESET)void MB85Ctrl_Init(void);
void MB85Ctrl_Read(uint16_t addr, uint8_t *buf, uint16_t len);
void MB85Ctrl_Write(uint16_t addr, uint8_t *buf, uint16_t len);

2.添加函数实体

在spi.c中添加如下函数:

static uint8_t SPI_ReadWriteByte(uint8_t data)
{uint8_t Rx_data = 0;HAL_SPI_TransmitReceive(&hspi1, &data, &Rx_data, 1, 0xff);return Rx_data;
}void MB85Ctrl_Write(uint16_t addr, uint8_t *buf, uint16_t len)
{uint8_t addr_H, addr_L;addr_H = (uint8_t)((addr & 0xff00) >> 8);addr_L = (uint8_t)(addr & 0x00ff);MB85_CS_CLR;SPI_ReadWriteByte(MB85RS128_CMD_WREN);MB85_CS_SET;HAL_Delay(1);MB85_CS_CLR;SPI_ReadWriteByte(MB85RS128_CMD_WRITE);SPI_ReadWriteByte(addr_H);SPI_ReadWriteByte(addr_L);for(; len > 0; len--){SPI_ReadWriteByte(*buf++);}MB85_CS_SET;
}void MB85Ctrl_Read(uint16_t addr, uint8_t *buf, uint16_t len)
{uint8_t addr_H, addr_L;addr_H = (uint8_t)((addr & 0xff00) >> 8);addr_L = (uint8_t)(addr & 0x00ff);MB85_CS_CLR;SPI_ReadWriteByte(MB85RS128_CMD_READ);SPI_ReadWriteByte(addr_H);SPI_ReadWriteByte(addr_L);for(; len > 0; len--){*buf++ = SPI_ReadWriteByte(0x00);}MB85_CS_SET;
}

总结

通过以上代码就能实现对MB85RS128的简单写入及读出操作,可根据实际需要自行调整。

基于STM32F103 HAL库 MB85RS128 驱动程序相关推荐

  1. 基于STM32 HAL库的遥控小车

    目录 前言 一.材料清单 二.系统概述 三.硬件设计 1.HC-SR04超声波模块 2.HC-05/06蓝牙模块 3.L298n电机驱动模块 四.代码 1.引脚设置 2.遥控部分 3.超声波报警部分 ...

  2. HIH8121(HIH8000系列)温湿度传感器驱动代码-基于STM32 HAL库

    HIH8121温湿度传感器代码基于STM32 HAL库 HIH8121传感器简介 驱动代码.c 驱动代码.h main函数 HIH8121传感器简介 HIH8121是霍尼韦尔公司生产的测量温湿度参数一 ...

  3. [STM32F1]基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备

    序: 其实这样一个设备我们在ch32v103上实现过,但移植到STM32 HAL库上面,还是发现很多问题的,现在就移植过程给大家分享一下在基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备的实现 ...

  4. 移植Freemodbus到STM32(基于CubeMX,HAL库)-避坑篇

    具体Freemodbus移植到STM32步骤参考: STMC2CubeMX | STM32 HAL库移植FreeModbus详细步骤 基于STM32HAL库移植FreeModbus FreeModbu ...

  5. 蓝牙小车(基于stm32f103c8t6/HAL库/CubeMX/超详细,包含代码讲解和原理图)

    系列文章目录链接 一.小车1.0--基本蓝牙小车(仅蓝牙遥控小车运动方向,本篇) 二.小车2.0--蓝牙小车PLUS(可以蓝牙控制方向+蓝牙直接调节车速) 三.小车3.0--避障小车(超声波+舵机云台 ...

  6. DW1000开发笔记(三)基于STM32 HAL库裸机工程移植DW1000官方驱动

    系列文章 DW1000开发笔记(一)DW1000芯片概览 DW1000开发笔记(二)使用STM32硬件SPI+STM32cubeMX+HAL库测试DW1000通信 一.官方驱动 Decawave官方提 ...

  7. 基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)

    本系统由通过wifi将浑浊度.PH值.温度采集的数据发送到手机APP,超过设定的阈值报警. 一.硬件材料清单: 1.STM32C8T6:控制器 2.OLED显示屏:显示传感器采集的数据 3.PH传感器 ...

  8. 基于STM32F103C8T6 HAL库 配置的FreeRTOS进行多线程LED点亮

    文章目录 前言 一.cubemx配置 1.设置SYS和RCC 2.FreeRTOS设置 3.GPIO 4.时钟树 二.程序编写 1.main.h 2.freertos.c 总结 前言 FreeRTOS ...

  9. MAX6675 带冷端补偿的热电偶测温芯片驱动-基于STM32 HAL库

    MAX6675 简介 MAX6675 是一款带冷端补偿的热电偶测温芯片,通过3线SPI总线直接输出热电偶测量温度值. 引脚如下: 与单片机连接关系如下: 通信时序与数据格式如下: MAX6675 驱动 ...

最新文章

  1. R语言WVPlots包可视化克利夫兰点ClevelandDotPlot、并按照分类变量排序进行可视化克利夫兰点ClevelandDotPlot
  2. k线顶分型 python_K线运用:顶分型的技术特点及应用方法
  3. 简易的c语言编译器,实现简易的C语言编译器(part 8)
  4. 朴素贝叶斯 python 实现
  5. 日语输入法电脑版_日语轻松入门小百科
  6. 云服务器搭建虚拟主机教程,云服务器搭建虚拟主机教程
  7. Integer学习感悟
  8. 北美地区IPv4地址已用完,网络IP地址告急?
  9. 编译lua5.3.5报错:libreadline.so存在多处未定义的引用
  10. 系统性总结了 Pandas 所有知识点
  11. TortoiseSVN 下载安装使用
  12. JAVA如何在LINUX里编程,如何使用加多宝(jdb)在linux下调试Java程序
  13. easyui combobox 查询传递json对象
  14. 关于Unity下载资源默认下载到C盘,更改到其他盘的方法
  15. 美术2.4 UV原理基础
  16. 淘宝商品详情APi接口(原数据APP、h5)
  17. 软件工程师的职业规划
  18. 虚拟机 邮箱服务器,虚拟机邮箱服务器设置密码
  19. SCA IDEA插件开发思路
  20. STM32F4-Discovery

热门文章

  1. 百度普通收录API提交报错:site init fail
  2. 量化交易是如何赚钱的?
  3. 统计在线人数、每日访问人数和总人数
  4. C语言:围圈报数游戏
  5. 代码格式化脚本CodeFormat
  6. ResNet 残差网络、残差块
  7. Spring入门实例
  8. 一步步推导由欧拉角到旋转矩阵的计算过程
  9. 数据治理-数据生命周期管理-大数据归档与销毁
  10. kubernetes cordon原理