完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我想往FLASH里写1K的数据下面这段程序有什么问题
下一页怎么写??? 应该分成4页 void IO_Write_Byte(uint32 Dst_Addr, uchar byte) { uchar i,j, byte1; _cs = 0; /* enable device */ IO_Write_Enable(); /* set WEL */ IO_Wait_Busy(); _cs = 0; IO_Send_Byte(W25P_PageProgram); /* send Byte rogram command */ IO_Send_Byte(((Dst_Addr & 0xFFFFFF) >> 16)); /* send 3 address bytes */ IO_Send_Byte(((Dst_Addr & 0xFFFF) >> 8)); IO_Send_Byte(Dst_Addr & 0xFF); for(j=0;j<8;j++) { for (i = 0; i < byte; i++) { byte1 = upper_1_128; IO_Send_Byte(byte1); /* send byte to be programmed */ } if(j%2==1) { _cs = 1; delay(16); _cs = 0; /* enable device */ IO_Write_Enable(); /* set WEL */ IO_Wait_Busy(); _cs = 0; Dst_Addr+=256; IO_Send_Byte(W25P_PageProgram); /* send Byte rogram command */ IO_Send_Byte(((Dst_Addr & 0xFFFFFF) >> 16)); /* send 3 address bytes */ IO_Send_Byte(((Dst_Addr & 0xFFFF) >> 8)); IO_Send_Byte(Dst_Addr & 0xFF); } } //IO_Send_Byte(byte); /* send byte to be programmed */ _cs = 1; /* disable device */ } 求大神指教、 心,狼在吼!(762095668) 10:18:02 用的是W25Q32 |
|
相关推荐
8个回答
|
|
请参考我们的W25Q16、W25Q64的例程。
|
|
|
|
我是新手,不知道在哪找,能给个地址吗
|
|
|
|
|
|
|
|
谢谢老大哥!
|
|
|
|
现在还有点疑惑,换也是不是给地址加256就可以了(首地址是000000H)?
|
|
|
|
回复【6楼】TOM:
-------------------------- 你拿25Q16的代码,可以直接用。 如果用25Q64的,那就地址范围注意不超过你的Q32地址范围即可。 给地址加256,不知道什么意思... |
|
|
|
void SPI_Flash_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite) { u16 pageremain; pageremain=256-WriteAddr%256; //单页剩余的字节数 if(NumByteToWrite<=pageremain)pageremain=NumByteToWrite;//不大于256个字节while(1){ SPI_Flash_Write_Page(pBuffer,WriteAddr,pageremain);if(NumByteToWrite==pageremain)break;//写入结束了 else //NumByteToWrite>pageremain{pBuffer+=pageremain;WriteAddr+=pageremain;
NumByteToWrite-=pageremain; //减去已经写入了的字节数if(NumByteToWrite>256)pageremain=256; //一次可以写入256个字节else pageremain=NumByteToWrite; //不够256个字节了}}; 一页256个BYTE,用页编辑写下一页是不是就给address加上256就行了? |
|
|
|
我用四个页编辑
IO_Write_Byte(0x00000000, 128);//delay(10);IO_Write_Byte(0x00000100, 128);//delay(10);IO_Write_Byte(0x00000200, 128);IO_Write_Byte(0x00000300, 128); 函数如下 void IO_Write_Byte(uint32 Dst_Addr, uchar byte){ uchar i,j, byte1; _cs = 0; /* enable device */ IO_Write_Enable(); /* set WEL */ IO_Wait_Busy(); _cs = 0; IO_Send_Byte(W25P_PageProgram); /* send Byte Program command */ IO_Send_Byte(((Dst_Addr & 0xFFFFFF) >> 16)); /* send 3 address bytes */ IO_Send_Byte(((Dst_Addr & 0xFFFF) >> 8)); IO_Send_Byte(Dst_Addr & 0xFF);for(j=0;j<2;j++) for (i = 0; i < byte; i++) { byte1 = upper_1_128; IO_Send_Byte(byte1); /* send byte to be programmed */ } 独处的数据却是 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F3 18 C4 00 04 A8 3D EC 01 4C 00 01 9D BD D7 AF 5F 61 00 00 C0 39 6F 16 39 1D 3B 42 33 3E 3A F8 DE 6F 58 FF F3 18 C4 04 05 C8 6A A4 01 8F 28 00 91 08 3A 84 57 1F E7 7A 91 BD 63 C3 EE A0 06 93 8B FE D4 D5 9C DD DD FF F3 18 C4 03 05 C0 6A B4 01 8C 28 00 0E E2 0D 11 85 EA 0B EE 89 F2 53 71 04 70 F6 02 BF 7F D5 90 5F 53 60 FF F3 18 C4 03 05 A8 6E B4 01 C7 00 00 04 0E F5 63 42 10 C3 FF F3 18 C4 00 04 A8 3D EC 01 4C 00 01 9D BD D7 AF 5F 61 00 00 C0 39 6F 16 39 1D 3B 42 33 3E 3A F8 DE 6F 58 FF F3 18 C4 04 05 C8 6A A4 01 8F 28 00 91 08 3A 84 57 1F E7 7A 91 BD 63 C3 EE A0 06 93 8B FE D4 D5 9C DD DD FF F3 18 C4 03 05 C0 6A B4 01 8C 28 00 0E E2 0D 11 85 EA 0B EE 89 F2 53 71 04 70 F6 02 BF 7F D5 90 5F 53 60 FF F3 18 C4 03 05 A8 6E B4 01 C7 00 00 04 0E F5 63 42 10 C3 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F3 18 C4 00 04 A8 3D EC 01 4C 00 01 9D BD D7 AF 5F 61 00 00 C0 39 6F 16 39 1D 3B 42 33 3E 3A F8 DE 6F 58 FF F3 18 C4 04 05 C8 6A A4 01 8F 28 00 91 08 3A 84 57 1F E7 7A 91 BD 63 C3 EE A0 06 93 8B FE D4 D5 9C DD DD FF F3 18 C4 03 05 C0 6A B4 01 8C 28 00 0E E2 0D 11 85 EA 0B EE 89 F2 53 71 04 70 F6 02 BF 7F D5 90 5F 53 60 FF F3 18 C4 03 05 A8 6E B4 01 C7 00 00 04 0E F5 63 42 10 C3 FF F3 18 C4 00 04 A8 3D EC 01 4C 00 01 9D BD D7 AF 5F 61 00 00 C0 39 6F 16 39 1D 3B 42 33 3E 3A F8 DE 6F 58 FF F3 18 C4 04 05 C8 6A A4 01 8F 28 00 91 08 3A 84 57 1F E7 7A 91 BD 63 C3 EE A0 06 93 8B FE D4 D5 9C DD DD FF F3 18 C4 03 05 C0 6A B4 01 8C 28 00 0E E2 0D 11 85 EA 0B EE 89 F2 53 71 04 70 F6 02 BF 7F D5 90 5F 53 60 FF F3 18 C4 03 05 A8 6E B4 01 C7 00 00 04 0E F5 63 42 10 C3 有两页没写上 但我用一个写的时候就没问题 这是怎么回事??? 王大哥指教 |
|
2 条评论
|
|
只有小组成员才能发言,加入小组>>
3292 浏览 9 评论
2966 浏览 16 评论
3471 浏览 1 评论
9016 浏览 16 评论
4058 浏览 18 评论
1136浏览 3评论
588浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
579浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2313浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1875浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 21:43 , Processed in 1.475379 second(s), Total 114, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号