STM32硬件实现与W25Q64通信
创作时间:
作者:
@小白创作中心
STM32硬件实现与W25Q64通信
引用
CSDN
1.
https://blog.csdn.net/bachelores/article/details/145403327
本文将介绍如何使用STM32F103C8T6微控制器与W25Q64 SPI Flash进行通信。通过STM32CubeMX配置硬件引脚和SPI参数,并提供具体的代码实现,帮助读者完成基本的读ID操作。
使用的型号为STM32F103C8T6与W25Q64。
STM32CubeMX配置与引脚衔接
根据STM32F103C8T6引脚手册,采用B12-B15四个引脚与W25Q64连接,实现SPI通信。
W25Q64 | STM32F103C8T6 |
|---|---|
SCK(CLK) | PB13 |
MOSI(DI) | PB15 |
MISO(DO) | PB14 |
CS | PB12 |
STM32CubeMX配置
这里对于时钟相关的配置就不做赘述了,由于是练习所以将系统时钟配置成了72MHz,主要是配置引脚。
在引脚配置将PB12配置为推挽输出,默认电平为高。PB13,PB14,PB15均使用硬件的SPI。可以在系统核心的GPIO中的SPI中看到这三个配置。
然后到SPI2中将参数配置,采用高位优先,波特率为18MB/s,若不是则需要调整Prescaler分频到18MB/s,传输以字节为单位。这里先不开启中断,所以NVIC setting里面的中断没有选上,做好基础配置后就可以生成代码,点击GENERATE CODE。在Src中就会出现spi.c文件
查看PB13和PB15应该是默认配置为复用推挽,PB14为浮空输入。
spi2的stm32cubemx生成的默认配置如下。
配置完成后代码实现与W25Q64通信
接下来就是实现与W25Q64的通信,先测试能不能获取到W25Q64的厂商ID和设备ID。
对SPI的收发函数进行了封装,通过
HAL_SPI_TransmitReceive()
函数,将
byte
发送给w25q64,并将收到的数据放入
rByte
。该函数第一个参数为句柄的指针,由于才用spi2,句柄为
hspi2
,第二个参数为要发送的字节,第三个为接受的字节,第四个为大小(以字节为单位),第五个为超时时长,以ms为单位。
uint8_t SPI_SwapByte(uint8_t byte)
{
uint8_t rByte = 0;
HAL_SPI_TransmitReceive(&hspi2, &byte, &rByte, 1, 1000);
return rByte;
}
void W25Q64_ReadID(uint8_t *mid, uint16_t *did)
{
// 读取ID
// 开启片选信号
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
// 发送读取ID命令
SPI_SwapByte(0x9f);
// 读取制造商id
*mid = SPI_SwapByte(0xff);
// 读取设备id
*did = 0;
*did |= SPI_SwapByte(0xff) << 8; // 高8位
*did |= SPI_SwapByte(0xff) & 0xff; // 低8位
// 关闭片选信号
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
// 发送调试信息到串口
char debugMsg[50];
int msgLength = snprintf(debugMsg, sizeof(debugMsg), "Manufacturer ID: 0x%02X, Device ID: 0x%04X\r\n", *mid, *did);
HAL_UART_Transmit(&huart1, (uint8_t *)debugMsg, msgLength, HAL_MAX_DELAY);
}
热门推荐
交管12123使用全攻略:从注册到各类业务办理
告别消极,拥抱积极:五个实用方法助你转变心态
大连市中医医院推荐:神阙穴急救法
从巫术到科学:希波克拉底《医学原本》开创西方医学新纪元
西双版纳旅游终极攻略:告庄、王莲酒店、曼听公园、勐泐大佛寺全攻略
PVb夹层玻璃:更安全耐用的家居玻璃新选择
一文掌握消防设备维修要点:5大故障处理方案
新房破2万、二手房近2.6万,庐阳房价上涨如何影响个人理财
茶多酚和儿茶素对胃部健康的影响揭秘
抚州必打卡:大觉山、流坑村、梦湖景区、黎川古城、麻姑山
告别低效阅读:七个实用技巧助你事半功倍
秋冬养生神器:甘蔗的N种吃法
华硕路由器WiFi黑名单设置教程:提升家庭网络安全的实用指南
手机拍雪景,这些技巧让你秒变摄影达人!
冬季打卡北欧极光胜地:特罗姆瑟&罗瓦涅米
暗区突围FAL改装攻略:从基础到深度的实战配置
早餐一定要吃蛋白质还能减肥!一天蛋白质要吃多少才够?专家曝这些必吃
提升网速,高效办公不掉线
别让情绪化言语伤害孩子,母亲该如何做好情绪管理
比尔·盖茨推荐:冥想如何科学改善大脑与心情
东方曜完全攻略:星辰之力机制与7套实用连招
解放碑:重庆的“网红”历史地标
出纳岗位的财务管理秘籍
首都儿科研究所推荐:婴儿鹅口疮最新治疗方法
俄罗斯方块开发指南:方块移动逻辑与代码实现
高血压患者吃早餐有讲究:三类食物要少吃,四类食材更健康
田英章书法争议:传统楷书还是现代印刷体?
常州至杭州自驾游攻略:一路顺风!
新能源汽车长途旅行:路线规划与高压快充双管齐下
穆特奥金斯36年合作再登台,演绎莫扎特舒伯特等经典