經過無數次調試 終于實現了單片機1通過nrf2401無線控制單片機2 控制兩個電機,可是為什么能成功完全不明白 請大神指教 程序
void main()
{
uchar i, sdat;
此處聲明變量,就無法通過單片機1無線控制 但是在開頭聲明此兩個全局變量,把驅動電機子程序替換這個子程序的函數 就能實現單片機1的無線控制了 ,但是有個新問題,每個數據只能按一次,電機執行一次,再按就沒有反應了,單片機復位后又可以每個鍵控制一遍,,,,,求大神分析分析啊
while(NRF24L01_Check()); //檢測到nrf2401才執行下一步
NRF24L01_RT_Init();
while(1)
{
if(NRF_IRQ==0) // 如果接收到數據
{
if(NRF24L01_RxPacket(rece_buf)==0)//如果接受數據完成
{
if(rece_buf[1]==1) //如果收到數據是1
{
led=0;
delay(100);
led=1; //led等閃一下
HC595SendData(0x18);驅動電機正轉的子程序
}}} delay(100);}} 此程序只有用電腦發送數據才能將電機驅動 單片機1發射不行
void HC595SendData(uchar sdat) //L293D·驅動電機正轉的子程序
{
uchar i;
for(i=0;i<8;i++)
{
SER = sdat>>7;
sdat= sdat<<1;
SCK = 1;
_nop_();
_nop_();
SCK = 0;
RCK=1;
_nop_();
_nop_();
RCK=0;
}
}
經過改了程序 刪除 HC595SendData(0x18);驅動電機正轉的子程序 在void main()主函數外聲明全局變量就可以了
|