专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
AT25DF161无法驱动
2020-01-26 12:52
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
12833
7
7
各位大侠,我在一个产品上用了两片AT25DF161打算将LCD显示数据写入其中,但是按照官方提供的时序图无法写入,也读不出!这是什么情况?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
guohua
1楼-- · 2020-01-26 15:56
void spiWrite(uchar Wbyte)
{
uchar i;
for(i=0;i<8;i++)
{
SPI_sck=0;
if((Wbyte<<i)&0x80){SPI_si=1;}
else{SPI_si=0;}
SPI_sck=1;
}
}
uchar spiRead(void)
{
uchar i,rbyte=0;
for(i=0;i<8;i++)
{
SPI_sck=0;
rbyte<<=1;
rbyte|=SPI_so;
SPI_sck=1;
}
return rbyte;
}
#define FREQ_LOW
#ifdef FREQ_LOW
#define RD_ARRAY 0x03
#else
#define RD_ARRAY 0x0B
#endif
#define BLOCK4_ERASE 0x20 //块擦除(4 KB )
#define BLOCK32_ERASE 0x52 //块擦除(32 KB)
#define BLOCK64_ERASE 0xD8 //块擦除(64 KB)
#define ERASE_BLOCK_TIME 851100 // 400ms
#define WR_PAGE_TIME 100000 // 1.2ms
#define WR_BYTE_TIME 250
#define CHIP_ERASE 0x60 //整片擦除
#define BPG_PROG 0x02 //字节、页编程(1至256字节)
#define SEQ_PROG 0xAD //0XAF
#define WR_EN 0x06 //写使能
#define WR_DIS 0x04 //写关闭
#define PRO_SEC 0x36 //保护区域
#define UPR_SEC 0x39 //解除保护区域
#define RD_SPR 0x3C //读扇区保护寄存器
#define RD_SR 0x05 //读状态寄存器
#define WR_SR 0x01 //写状态寄存器1
#define RD_MDI 0x9F //读制造商及设备标识
#define DEEP_PWR 0xB9 //省电模式
#define RT_DEEP_PWR 0xB9 //解除省电模式
加载中...
Hamyou
2楼-- · 2020-01-26 21:02
很显然,时序有问题,严格按照数据手册上的来写,在搜一下网上的例子,应该没什么问题
加载中...
guohua
3楼-- · 2020-01-26 21:27
网上也找了很多SPI程序,但是都不行能否赐教!
加载中...
lkl10800139
4楼-- · 2020-01-26 22:59
我也准备弄这个,网上貌似没有什么资料。只能看类似的啦
加载中...
lkl10800139
5楼-- · 2020-01-26 23:31
精彩回答 2 元偷偷看……
加载中...
and001
6楼-- · 2020-01-27 01:43
guohua 发表于 2012-6-26 01:28
网上也找了很多SPI程序,但是都不行能否赐教!
你是用到哪上面的呀?好像空间比较大呀?
加载中...
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
{
uchar i;
for(i=0;i<8;i++)
{
SPI_sck=0;
if((Wbyte<<i)&0x80){SPI_si=1;}
else{SPI_si=0;}
SPI_sck=1;
}
}
uchar spiRead(void)
{
uchar i,rbyte=0;
for(i=0;i<8;i++)
{
SPI_sck=0;
rbyte<<=1;
rbyte|=SPI_so;
SPI_sck=1;
}
return rbyte;
}
#define FREQ_LOW
#ifdef FREQ_LOW
#define RD_ARRAY 0x03
#else
#define RD_ARRAY 0x0B
#endif
#define BLOCK4_ERASE 0x20 //块擦除(4 KB )
#define BLOCK32_ERASE 0x52 //块擦除(32 KB)
#define BLOCK64_ERASE 0xD8 //块擦除(64 KB)
#define ERASE_BLOCK_TIME 851100 // 400ms
#define WR_PAGE_TIME 100000 // 1.2ms
#define WR_BYTE_TIME 250
#define CHIP_ERASE 0x60 //整片擦除
#define BPG_PROG 0x02 //字节、页编程(1至256字节)
#define SEQ_PROG 0xAD //0XAF
#define WR_EN 0x06 //写使能
#define WR_DIS 0x04 //写关闭
#define PRO_SEC 0x36 //保护区域
#define UPR_SEC 0x39 //解除保护区域
#define RD_SPR 0x3C //读扇区保护寄存器
#define RD_SR 0x05 //读状态寄存器
#define WR_SR 0x01 //写状态寄存器1
#define RD_MDI 0x9F //读制造商及设备标识
#define DEEP_PWR 0xB9 //省电模式
#define RT_DEEP_PWR 0xB9 //解除省电模式
你是用到哪上面的呀?好像空间比较大呀?
一周热门 更多>