|
在做一个AMC1203(类似于AD2S1203,只不过AMC1203是隔离的,AD2S1203是非隔离的),通过SPI采集电流,我下面的SPI.C程序对吗?(2812作为从机处理,AMC1203作为主机处理,其频率为12.5M<2812的LSPCLK/4 = 75/4 = 17.5M),另外,程序中data代表我测到的数据吗?
#include "DSP28_Device.h"
//配置SPI
void InitSpi(void)
{
SpiaRegs.SPICCR.all = 0x0F;//配置控制寄存器,进入初始状态,在上升沿输出,自测禁止,16位数据(AMC1203为16位)
SpiaRegs.SPICTL.all = 0x0;//操作控制寄存器设置,正常的SPI时钟方式,从动模式,禁止SPI发送,禁止中断
/*波特率的设置,在此设置为从机模式,波特率设置无效,但是要求主机即AMC1203的波特率不能大于从机即2812的SPI波特率=70/4=17.5M*/
//SpiaRegs.SPIBRR = 0x0;//波特率 = LSPCLK/4 = 75/4 = 17.5M
SpiaRegs.SPICCR.all = 0x8F; //退出初始状态
}
//SPI配置好后,是不是就是下面这样就能读取数据了啊?
unsigned int Spi_RxReady(void)
{
int data;
GpioDataRegs.GPFDAT.bit.GPIOF3=0;//SPI使能
SpiaRegs.SPIRXBUF=0x0300;//发送读指令
while(SpiaRegs.SPISTS.bit.INT_FLAG !=1){}
data=SpiaRegs.SPIRXBUF;//接收数据
GpioDataRegs.GPFDAT.bit.GPIOF3=1;//禁止SPI
return data; //返回数据
}
![](http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_720913IRNWCP.JPG)
(原文件名:1111.JPG) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|