有谁能提供一下STC12A5A60S2单片机硬件SPI驱动ISD1700语音电路的程序

调试了无数次了,还是没反应,用软件模拟SPI已经调通,就是硬件SPI不行,望有调试成功的帮助一下。不胜感激。... 调试了无数次了,还是没反应,用软件模拟SPI已经调通,就是硬件SPI不行,望有调试成功的帮助一下。不胜感激。 展开
 我来答
lvxinn2006
2011-04-18 · TA获得超过213个赞
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:84.8万
展开全部
这是硬件SPI的实现函数
uchar SPI_Write(unsigned char addr,unsigned char dat)
{ uchar temp;
bit t=EA;
EA=0;
SEL=0;
SPDAT=addr|0x80;
while((SPSTAT&0x80)!=0x80);
SPSTAT=0xc0;
temp=SPDAT;
SPDAT=dat;
while((SPSTAT&0x80)!=0x80);
SPSTAT=0xc0;
SEL=1;
EA=t;
return temp;

}
unsigned char SPI_Read(unsigned char addr)
{ unsigned char temp;
bit t=EA;
EA=0;
SEL=0;
addr=addr&0x7f;
SPDAT=addr;
while((SPSTAT&0x80)!=0x80);
SPSTAT=0xc0;
SPDAT=0x00;
while((SPSTAT&0x80)!=0x80);
SPSTAT=0xc0;
SEL=1;
temp=SPDAT;
EA=t;
return temp;

}
unsigned int SPI_Reads(unsigned char addr)
{ unsigned int temp;
bit t=EA;
EA=0;
SEL=0;
addr=addr&0x7f;
SPDAT=addr;
while((SPSTAT&0x80)!=0x80);
SPSTAT=0xc0;
temp=SPDAT<<8;
SPDAT=0x00;
while((SPSTAT&0x80)!=0x80);
SPSTAT=0xc0;
SEL=1;
temp=temp|SPDAT;
EA=t;
return temp;

}
更多追问追答
追问
请问这个是驱动ISD1700语音电路的吗,我主要是针对单片机SPI口的寄存器初始化不知道对不对,我针对ISD1700设定的SPTCL寄存器初始值设为0xfc,不知是不是这样。发送数据部分uchar ISD_SendData(uchar BUF_ISD)
{
uchar i,dat=BUF_ISD;

SS=0;
SPDAT=dat;
while(!(SPSTAT&0x80));
SPSTAT=0xc0;
i=SPDAT;
MOSI=0;
追答
ISD1700没用过,我当时做的是AX5051,RF射频模块,就是SPI接口的,我给你提供的就是单片机硬件SPI的通信函数,至于驱动,还得看datasheet阿
小谢
2024-11-18 广告
作为深圳市金创图电子设备有限公司的工作人员,我推荐您选择JTAG烧录器。JTAG烧录器是一种通用的芯片烧录方法,它通过串行的方式进行烧录,具有速度快、操作简单、价格低廉等优点。JTAG烧录器支持多种芯片类型,包括单片机、PLC、DSP等,可... 点击进入详情页
本回答由小谢提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式