欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10526|回復(fù): 9
收起左側(cè)

求助!宏晶stc15單片機(jī)spi主從通訊問題,請進(jìn)來!萬謝!

[復(fù)制鏈接]
ID:87448 發(fā)表于 2015-10-4 01:35 | 顯示全部樓層 |閱讀模式
大假小弟哪都沒去,在家調(diào)試了很久,確實(shí)很疲憊,半個(gè)月的努力沒見成效,求助萬能的礦石請同學(xué)們指教!
      主從單片機(jī)的項(xiàng)目都成了,但是總是發(fā)現(xiàn)從機(jī)結(jié)果偶爾不對,很不可靠,寫了這兩段主,從程序,通過串口助手觀察發(fā)現(xiàn)總會掉碼,很多地方都試圖加了延時(shí),還是不見成效!
      主從通訊都已經(jīng)是128的分頻了,怎么還會這樣?主機(jī)144字節(jié)的數(shù)組占用的是內(nèi)部擴(kuò)展RAM,通過spi發(fā)送到從機(jī)內(nèi)部的擴(kuò)展RAM,144個(gè)字節(jié)就差不多10%掉了,這是怎么回事?萬分感謝!!!!!!!!
spi電路.jpg SPI調(diào)試.JPG

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:87448 發(fā)表于 2015-10-4 01:37 | 顯示全部樓層
/芯片的工作頻率為22.1184MHz 主機(jī)源碼
#include<STC15F2K60S2.H>
#include <INTRINS.H>
#include<ABSACC.H>
#include<STDIO.H>
#include "AD_SPI.H"

#include "AD_UartInit.H"
       
#define  ulong unsigned long          // 4 byte
#define  uint unsigned int                   //2 byte                 0-65535
#define  uchar unsigned char                 // byte                 0-255
#define  nop8();  {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();};
void Delay20us();
void Delay50ms();
uchar  *AD_array_point;
uchar xdata AD_ZERO[144]  _at_ 0x20;

uchar k,i,j;
void main()
{
     Delay50ms();
     AD_UartInit();
     AD_InitSpi();
     IE2 |= ESPI;
     EA = 1;
         
         while(1){
             for(j=0;j<144;j++)         //RAM初始化
      {
     AD_ZERO[j]=0;
      }
         
         /**********************/
         while(!RI);         //*****
         RI=0;
         
         
         for(k=0;k<144;k++)                 //72通道采樣
         {
         AD_ZERO[k]= k;
         
         }
         /********發(fā)送數(shù)組到從機(jī)***************/
         AD_array_point=AD_ZERO;          //定位調(diào)零數(shù)組
         for(k=0;k<144;k++)
         {
         SS=0;
         SPDAT=*AD_array_point;
         AD_array_point++;
         Delay20us();
         Delay20us();
         Delay20us();
         Delay20us();
         Delay20us();
         Delay20us();
         
         }
         /***********顯示發(fā)送到從機(jī)的數(shù)組*********************/
         AD_array_point=AD_ZERO;
         for(k=0;k<144;k++)
         {
          TI=1;
          printf("0X%bx\n",AD_ZERO[k]); //0928屏蔽
         
         }
         
    }
}



void Delay50ms()                //@22.1184MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 5;
        j = 52;
        k = 195;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void spi_isr() interrupt 9 using 1     //SPI中斷服務(wù)程序 9 (004BH)
{
          
        SPSTAT = SPIF | WCOL;       //清除SPI狀態(tài)位
        SS = 1;                  //拉高從機(jī)的SS
       
}
void Delay20us()                //@22.1184MHz
{
        unsigned char i;

        i = 108;
        while (--i);
}




回復(fù)

使用道具 舉報(bào)

ID:87448 發(fā)表于 2015-10-4 01:37 | 顯示全部樓層
//從機(jī)源碼
#include <STC15F2K60S2.H>
#include <STDIO.H>
#include "AD_UartInit.H"


uchar j;
void main()
{
DA_Pointer_Array= DA_Array;
DA_InitSpi();
AD_UartInit();
SPI_receive=0;
IE2=IE2|ESPI;   //使能SPI中斷
EA=1;


while(1){
             
       for(j=0;j<144;j++)         //RAM初始化
       {
       DA_Array[j]=0;
       }          

          while(!RI);
          RI=0;
          for(j=0;j<144;j++)
          {
          TI=1;
          printf("0x%bx\n",DA_Array[j]);
          }
          DA_Pointer_Array= DA_Array;
        }
}

  void spi_isr() interrupt 9 using 1     //SPI中斷服務(wù)程序 9 (004BH)
{

        SPSTAT = SPIF | WCOL;       //清除SPI狀態(tài)位 0XC0
           *DA_Pointer_Array=SPDAT;
        DA_Pointer_Array++;
       
}


回復(fù)

使用道具 舉報(bào)

ID:87448 發(fā)表于 2015-10-5 01:12 | 顯示全部樓層
問題已經(jīng)找到
回復(fù)

使用道具 舉報(bào)

ID:87448 發(fā)表于 2015-10-5 01:13 | 顯示全部樓層
已經(jīng)完美
回復(fù)

使用道具 舉報(bào)

ID:90789 發(fā)表于 2015-10-5 15:41 來自觸屏版 | 顯示全部樓層
剛想請教
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2015-10-6 14:59 來自觸屏版 | 顯示全部樓層
zhou792008 發(fā)表于 2015-10-5 01:13
已經(jīng)完美

怎么解決的,樓主能分享一下嗎。期待
回復(fù)

使用道具 舉報(bào)

ID:87448 發(fā)表于 2015-10-7 20:09 | 顯示全部樓層
admin 發(fā)表于 2015-10-6 14:59
怎么解決的,樓主能分享一下嗎。期待

CL.JPG CL-1.JPG
回復(fù)

使用道具 舉報(bào)

ID:87448 發(fā)表于 2015-10-7 20:10 | 顯示全部樓層
datasheet沒仔細(xì)看 結(jié)果15f從機(jī)本身就不正常!換了15w就解決了
回復(fù)

使用道具 舉報(bào)

ID:385637 發(fā)表于 2020-7-18 10:12 | 顯示全部樓層
那就是代碼沒問題,是STC芯片的問題嘍
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表