基于STM32F103 HAL库 MB85RS128 驱动程序
前言
本驱动程序基于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 驱动程序相关推荐
- 基于STM32 HAL库的遥控小车
目录 前言 一.材料清单 二.系统概述 三.硬件设计 1.HC-SR04超声波模块 2.HC-05/06蓝牙模块 3.L298n电机驱动模块 四.代码 1.引脚设置 2.遥控部分 3.超声波报警部分 ...
- HIH8121(HIH8000系列)温湿度传感器驱动代码-基于STM32 HAL库
HIH8121温湿度传感器代码基于STM32 HAL库 HIH8121传感器简介 驱动代码.c 驱动代码.h main函数 HIH8121传感器简介 HIH8121是霍尼韦尔公司生产的测量温湿度参数一 ...
- [STM32F1]基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备
序: 其实这样一个设备我们在ch32v103上实现过,但移植到STM32 HAL库上面,还是发现很多问题的,现在就移植过程给大家分享一下在基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备的实现 ...
- 移植Freemodbus到STM32(基于CubeMX,HAL库)-避坑篇
具体Freemodbus移植到STM32步骤参考: STMC2CubeMX | STM32 HAL库移植FreeModbus详细步骤 基于STM32HAL库移植FreeModbus FreeModbu ...
- 蓝牙小车(基于stm32f103c8t6/HAL库/CubeMX/超详细,包含代码讲解和原理图)
系列文章目录链接 一.小车1.0--基本蓝牙小车(仅蓝牙遥控小车运动方向,本篇) 二.小车2.0--蓝牙小车PLUS(可以蓝牙控制方向+蓝牙直接调节车速) 三.小车3.0--避障小车(超声波+舵机云台 ...
- DW1000开发笔记(三)基于STM32 HAL库裸机工程移植DW1000官方驱动
系列文章 DW1000开发笔记(一)DW1000芯片概览 DW1000开发笔记(二)使用STM32硬件SPI+STM32cubeMX+HAL库测试DW1000通信 一.官方驱动 Decawave官方提 ...
- 基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)
本系统由通过wifi将浑浊度.PH值.温度采集的数据发送到手机APP,超过设定的阈值报警. 一.硬件材料清单: 1.STM32C8T6:控制器 2.OLED显示屏:显示传感器采集的数据 3.PH传感器 ...
- 基于STM32F103C8T6 HAL库 配置的FreeRTOS进行多线程LED点亮
文章目录 前言 一.cubemx配置 1.设置SYS和RCC 2.FreeRTOS设置 3.GPIO 4.时钟树 二.程序编写 1.main.h 2.freertos.c 总结 前言 FreeRTOS ...
- MAX6675 带冷端补偿的热电偶测温芯片驱动-基于STM32 HAL库
MAX6675 简介 MAX6675 是一款带冷端补偿的热电偶测温芯片,通过3线SPI总线直接输出热电偶测量温度值. 引脚如下: 与单片机连接关系如下: 通信时序与数据格式如下: MAX6675 驱动 ...
最新文章
- R语言WVPlots包可视化克利夫兰点ClevelandDotPlot、并按照分类变量排序进行可视化克利夫兰点ClevelandDotPlot
- k线顶分型 python_K线运用:顶分型的技术特点及应用方法
- 简易的c语言编译器,实现简易的C语言编译器(part 8)
- 朴素贝叶斯 python 实现
- 日语输入法电脑版_日语轻松入门小百科
- 云服务器搭建虚拟主机教程,云服务器搭建虚拟主机教程
- Integer学习感悟
- 北美地区IPv4地址已用完,网络IP地址告急?
- 编译lua5.3.5报错:libreadline.so存在多处未定义的引用
- 系统性总结了 Pandas 所有知识点
- TortoiseSVN 下载安装使用
- JAVA如何在LINUX里编程,如何使用加多宝(jdb)在linux下调试Java程序
- easyui combobox 查询传递json对象
- 关于Unity下载资源默认下载到C盘,更改到其他盘的方法
- 美术2.4 UV原理基础
- 淘宝商品详情APi接口(原数据APP、h5)
- 软件工程师的职业规划
- 虚拟机 邮箱服务器,虚拟机邮箱服务器设置密码
- SCA IDEA插件开发思路
- STM32F4-Discovery