S
欧美女人裸身网站精选高清图片免费下载,性感写真,艺术摄影,私房照...
首页
速度
优化工具
☰
首页
速度
收录
工具
首页
/
速度优化
/
巾帼不让须眉:孙尚香的正能量,点亮乱世英雄梦!
网站优化
谁能想到,一场“黑土狂吃鸣人钢筋”的误会,竟是拯救世界的序曲?
范冰冰的荧幕传奇:从“武媚娘”到“黑金刚”,一场跨越时空的视觉盛宴!
2026-06-12 09:21:53
阅读时长:6分钟
562次阅读
核心内容摘要
17C官方网页版:开启无限可能,智享数字新时代
w25q
h#ifndef__W25Q64_H#define__W25Q64_H#includemain.h#includespi.h// 引脚定义#defineW25Q64_CS_PINGPIO_PIN_15#defineW25Q64_CS_PORTGPIOA// W25Q64指令集#defineW25Q64_WRITE_ENABLE0x06#defineW25Q64_WRITE_DISABLE0x04#defineW25Q64_READ_STATUS10x05#defineW25Q64_WRITE_STATUS10x01#defineW25Q64_READ_DATA0x03#defineW25Q64_PAGE_PROGRAM0x02#defineW25Q64_SECTOR_ERASE0x20#defineW25Q64_CHIP_ERASE0xC7#defineW25Q64_POWER_DOWN0xB9#defineW25Q64_RELEASE_PD0xAB#defineW25Q64_MANUF_DEVICE_ID0x90#defineW25Q64_JEDEC_ID0x9F// Flash容量参数#defineW25Q64_PAGE_SIZE256#defineW25Q64_SECTOR_SIZE4096#defineW25Q64_TOTAL_SIZE(8*1024*
// 8MB// 函数声明voidW25Q64_Init(void);uint8_tW25Q64_ReadByte(uint32_taddr);voidW25Q64_ReadBytes(uint32_taddr,uint8_t*buf,uint32_tlen);voidW25Q64_WriteByte(uint32_taddr,uint8_tdata);voidW25Q64_WriteBytes(uint32_taddr,uint8_t*data,uint32_tlen);voidW25Q64_ModifyByte(uint32_taddr,uint8_tdata);voidW25Q64_EraseSector(uint32_tsector_addr);voidW25Q64_WaitBusy(void);uint32_tW25Q64_ReadID(void);#endif/* __W25Q64_H */w25q
c#includew25q
h// 私有函数声明staticvoidW25Q64_CS_Low(void);staticvoidW25Q64_CS_High(void);staticvoidW25Q64_WriteEnable(void);staticuint8_tW25Q64_ReadStatus(void);// 初始化函数voidW25Q64_Init(void){W25Q64_CS_High();HAL_Delay(
;// 读取ID验证连接uint32_tidW25Q64_ReadID();if(id0xEF
// W25Q64JV的JEDEC ID{// 初始化成功}}// 读取单个字节uint8_tW25Q64_ReadByte(uint32_taddr){uint8_tcmd[4]{W25Q64_READ_DATA,(addr
0xFF,(addr
0xFF,addr0xFF};uint8_tdata0;W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,4,
;HAL_SPI_Receive(hspi6,data,1,
;W25Q64_CS_High();returndata;}// 读取多个字节voidW25Q64_ReadBytes(uint32_taddr,uint8_t*buf,uint32_tlen){uint8_tcmd[4]{W25Q64_READ_DATA,(addr
0xFF,(addr
0xFF,addr0xFF};W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,4,
;HAL_SPI_Receive(hspi6,buf,len,
;W25Q64_CS_High();}// 写入单个字节voidW25Q64_WriteByte(uint32_taddr,uint8_tdata){uint8_tcmd[5]{W25Q64_PAGE_PROGRAM,(addr
0xFF,(addr
0xFF,addr0xFF,data};W25Q64_WriteEnable();W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,5,
;W25Q64_CS_High();W25Q64_WaitBusy();}// 写入多个字节注意不能跨页写入voidW25Q64_WriteBytes(uint32_taddr,uint8_t*data,uint32_tlen){// 确保不跨页写入uint32_tpage_remainW25Q64_PAGE_SIZE-(addr%W25Q64_PAGE_SIZE);uint32_twrite_len(lenpage_remain)?page_remain:len;uint8_t*cmd(uint8_t*)malloc(write_len
;if(cmdNULL)return;cmd[0]W25Q64_PAGE_PROGRAM;cmd[1](addr
0xFF;cmd[2](addr
0xFF;cmd[3]addr0xFF;memcpy(cmd[4],data,write_len);W25Q64_WriteEnable();W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,write_len4,
;W25Q64_CS_High();W25Q64_WaitBusy();free(cmd);// 如果还有数据需要写入递归调用if(lenwrite_len){W25Q64_WriteBytes(addrwrite_len,datawrite_len,len-write_len);}}// 修改指定地址的字节先擦除后写入voidW25Q64_ModifyByte(uint32_taddr,uint8_tdata){// 计算所在扇区uint32_tsector_addraddr-(addr%W25Q64_SECTOR_SIZE);uint8_tsector_buffer[W25Q64_SECTOR_SIZE];//
读取整个扇区W25Q64_ReadBytes(sector_addr,sector_buffer,W25Q64_SECTOR_SIZE);//
修改指定字节sector_buffer[addr-sector_addr]data;//
擦除扇区W25Q64_EraseSector(sector_addr);//
重新写入整个扇区// 分页写入每次写入一页256字节for(uint32_ti0;iW25Q64_SECTOR_SIZE;iW25Q64_PAGE_SIZE){W25Q64_WriteBytes(sector_addri,sector_buffer[i],W25Q64_PAGE_SIZE);}}// 擦除扇区4KBvoidW25Q64_EraseSector(uint32_tsector_addr){uint8_tcmd[4]{W25Q64_SECTOR_ERASE,(sector_addr
0xFF,(sector_addr
0xFF,sector_addr0xFF};W25Q64_WriteEnable();W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,4,
;W25Q64_CS_High();W25Q64_WaitBusy();}// 等待Flash操作完成voidW25Q64_WaitBusy(void){while(W25Q64_ReadStatus()0x
{HAL_Delay(
;}}// 读取JEDEC IDuint32_tW25Q64_ReadID(void){uint8_tcmdW25Q64_JEDEC_ID;uint8_tid_data[3];W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,1,
;HAL_SPI_Receive(hspi6,id_data,3,
;W25Q64_CS_High();return(id_data[0]
|(id_data[1]
|id_data[2];}// 私有函数实现staticvoidW25Q64_CS_Low(void){HAL_GPIO_WritePin(W25Q64_CS_PORT,W25Q64_CS_PIN,GPIO_PIN_RESET);}staticvoidW25Q64_CS_High(void){HAL_GPIO_WritePin(W25Q64_CS_PORT,W25Q64_CS_PIN,GPIO_PIN_SET);}staticvoidW25Q64_WriteEnable(void){uint8_tcmdW25Q64_WRITE_ENABLE;W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,1,
;W25Q64_CS_High();}staticuint8_tW25Q64_ReadStatus(void){uint8_tcmdW25Q64_READ_STATUS1;uint8_tstatus;W25Q64_CS_Low();HAL_SPI_Transmit(hspi6,cmd,1,
;HAL_SPI_Receive(hspi6,status,1,
;W25Q64_CS_High();returnstatus;}使用例程#includew25q
h// 测试函数voidmain(void){uint8_tread_data;uint8_twrite_data0xAA;uint32_ttest_addr0x000000;// 测试地址//
初始化W25Q64_Init();//
写入单个字节W25Q64_WriteByte(test_addr,write_data);HAL_Delay(
;//
读取单个字节read_dataW25Q64_ReadByte(test_addr);if(read_datawrite_data){// 写入成功}//
批量写入测试uint8_twrite_buffer[256];uint8_tread_buffer[256];for(inti0;i256;i){write_buffer[i]i;}W25Q64_WriteBytes(0x1000,write_buffer,
;HAL_Delay(
;//
批量读取测试W25Q64_ReadBytes(0x1000,read_buffer,
;//
修改指定地址的数据W25Q64_ModifyByte(0x2000,0x
;//
擦除扇区测试W25Q64_EraseSector(0x
;}CubeMX配置要点SPI6配置· Mode: Full-Duplex Master· Hardware NSS Signal: Disable· Prescaler: 根据HCLK频率调整建议≤50MHzGPIO配置· PA15: GPIO_OutputCS引脚· PB3: SPI6_SCK· PB4: SPI6_MISO· PB5: SPI6_MOSI时钟配置· 确保SPI时钟不超过W25Q64的最大频率104MHz
注意事项写操作前必须擦除Flash只能从1变为0所以写前需要擦除变为0xFF擦除最小单位4KB扇区写操作跨页处理页大小为256字节跨页时需要分页写入修改函数效率W25Q64_ModifyByte会擦除整个扇区频繁修改时应考虑缓存机制这个驱动提供了基本的读写和修改功能可以根据需要扩展更多功能如整片擦除、快速读取等。
96533电视在线观看免费版-96533电视在线观看免费版应用
相关标签
3步解锁OneNote的Markdown超能力:让笔记效率提升300%的开源插件
百考通实践报告生成器:告别模板,轻松定制你的专业成长履历
LaTeX论文排版:DeepSeek自动生成公式与格式标准化技巧
百度网盘秒传技术:提升文件传输效率的全平台解决方案指南
游戏串流优化:构建Sunshine低延迟流式传输环境的完整指南
MedGemma 1.5在嵌入式医疗设备上的轻量化部署
钓鱼即服务:网络犯罪的地下订阅革命
基于Python网易云排行榜数据分析系统设计与实现
从文件混乱到管理大师:NSC_BUILDER的3个颠覆性用法
AI写论文必备清单!4款AI论文写作工具,解决论文难题!
HY-Motion 1.0效果展示:‘walk unsteadily then sit down’生成真实步态衰减
自然交互+精准感知!Deepoc具身模型开发板让清洁机器人告别“盲扫”
MacBook必备技能:5分钟搞定远程服务器挂载(macFUSE+sshfs保姆级教程)
RMBG-2.0开源大模型部署教程:Transformers加载+CUDA12.4适配
🔍
📑
文章目录
二、樱花漫画9.1破解版:解锁无限精彩,触手可及的二次元世界!
三、爱情的赛道,谁是真正的赢家?——“闭俗情侣”与“玩咖辣妹”的训练营奇遇记
四、在“扌喿辶畐畐畬”的语序中寻找灵魂的终极闭环
五、冲田杏梨新作绝密曝光:不止于视觉的震撼,更是一场心灵的盛宴!
🔥
热门优化文章
MAA明日方舟智能助手:解放双手的游戏自动化解决方案
2026-05-16 23:19:13
桂林旅游景点导游平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
2026-05-16 23:19:13
🛠️
实用工具推荐
5G时代,颠覆你的视听体验——不止于快,更是无限可能
被污染的“茜”
相关优化文章 推荐
从零构建感知机:MATLAB实战与可视化分析
2026-06-12 09:21:53 9分钟阅读
无需编程基础!用Qwen2.5-Coder-1.5B快速生成代码的秘诀
2026-06-12 09:21:53 8分钟阅读
造相-Z-Image-Turbo 开发环境配置:使用Anaconda管理Python依赖与虚拟环境
2026-06-12 09:21:53 2分钟阅读
↑
百度百家号客服电话人工服务
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3