谢谢回复!!发那么多问题终于有人回复了,看到的有点晚,希望您有时间看到能够再次回复。谢谢!
我想用一个单片机向另一个发送一组数据,然后用数码管显示出来,
//发射的主函数
void main(void)
{
char i=0;
int x=0,y=0;
unsigned char sta;
delay_ms(1000);
init_io(); //引脚初始化
//delay_ms(1000);
TX_Mode();
while(1)
{
readadc(0,1);
tx_buf[0]=ad1;
tx_buf[1]=ad2;
CE = 0;
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); //将数据送入发射缓冲区
CE = 1;
while(IRQ);
sta=SPI_Read(STATUS);
SPI_RW_Reg(FLUSH_TX, 0xff); //清除发射缓冲区
SPI_RW_Reg(WRITE_REG+STATUS,sta); //清除各种中断标志
delay_ms(50);
}
}
void readadc(unsigned char add1,add2)
{
ad1=read_adc(add1);
ad1=read_adc(add1);
ad2=read_adc(add2);
ad2=read_adc(add2);
}
/**************/
//接受端
void main(void)
{
uchar sta;
Timer1Init();
Timer0Init();
init_io(); //初始化IO引脚
delay_ms(1000);
RX_Mode(); //配置为接收模式
while(1)
{
sta=SPI_Read(STATUS); //读取芯片的状态寄存器
if((sta & 0x40) != 0) //是否发生了接收数据完成的中断
{ //是的话,将收到的数据存到数组rx_buf里
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);
}
if(rx_buf[4]==0x23&&rx_buf[0]!=35)//判断收到的数据是不是0x23
{
pwm_chage();
dpy_chage_display(rx_buf[0]/100,rx_buf[0]%100/10,rx_buf[0]%10,PWM/10,PWM%10,rx_buf[1]/100,rx_buf[1]%100/10,rx_buf[1]%10);
}
SPI_RW_Reg(FLUSH_RX,0xff); //清除接收缓冲器
SPI_RW_Reg(WRITE_REG+STATUS,sta);//清除接收中断标志
delay_ms(2);
}
}
void time0() interrupt 1
{
dpy_display();
}
|