终于能通讯了,发个感慨。折磨人啊。我是用SPI进行通讯的,驱动了3路直流电机。
不容易,跟大家分享一下。下面是我的程序,只能提供到此地步了。继续努力弄其他的。
#define SCK P1.2
#define SO P1.0
#define SI P1.1
#define RESET P1.3
void delay(void)
{
unsigned char i;
for(i=0;i<50;i++);
}
void delayms(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++)
; 
}
void SPISendByte(unsigned char data)
{
unsigned char n,temp;
temp=data;
for(n=0;n<8;)
{
SCK=0;
if(temp&0x80)
  SO=1;
else
  SO=0;
delay();
SCK=1;
delay();
n++;
temp=(temp<<1);
}
SCK=0;
}
void main( void )
{
/*添加必要的初始化程序*/
RESET=0;   /*先复位*/
SCK=0;    /*SCK信号,上电后要输出低*/
SO=0;
delayms(5);
RESET=1;
delayms(5);
SPISendByte(0x5c);   /*寄存器控制字*/
SPISendByte(0x00);   /*对应寄存器的值*/
delayms(1);      /*两帧数据之间要加>1ms的延时,同一帧的两组数据之间不用*/
SPISendByte(0x50);  /*通道1*/
SPISendByte(0xc0);
delayms(1);
SPISendByte(0x53);
SPISendByte(0x80);
delayms(1);
SPISendByte(0x54);  /*通道2*/
SPISendByte(0xc0);
delayms(1);
SPISendByte(0x57);
SPISendByte(0x80);
delayms(1);
SPISendByte(0x58);  /*通道3*/
SPISendByte(0xe0);
delayms(1);
SPISendByte(0x5b);
SPISendByte(0x80);
delayms(1);
delayms(1000);
SPISendByte(0x50);   /*通道1停*/
SPISendByte(0x00);
while(1)
  {
  
  }
}

 
					
				
 
			
			
			
						
			 
					
				 
					
				 
					
				 
					
				 
					
				 
					
				 
					
				 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

