會員登陸
網站導航
最新下載
- Microchip 程式... (Tue, 17-Apr-2018)
- Microchip 程式... (Mon, 09-Apr-2018)
- Microchip2018微... (Fri, 19-Jan-2018)
- Microchip 2018 ... (Tue, 19-Dec-2017)
- 2017 精英年會特... (Wed, 11-Oct-2017)
- 2017 秋 研討會... (Wed, 11-Oct-2017)
- 2017 暑期微控制... (Fri, 07-Jul-2017)
- ATM6 講義與實作... (Tue, 27-Jun-2017)
- ATM5 講義與實作... (Tue, 27-Jun-2017)
- ATM4 講義與實作... (Tue, 27-Jun-2017)
訪問統計 (自2012/5/3)
|
正在流覽:
1 名訪客
|
請問SPI 接收失敗 |
|
新會員 
註冊日期: 2016/06/02 17:10
所屬群組:
註冊會員
文章: 5
等級: 1; EXP: 34 HP : 0 / 8 MP : 1 / 47
|
我是使用dspic33fj06gs202 當主端 nRF24L01當從端 而dspic從MISO卻抓不到資料 但從示波器上可以看到從nRF傳至MISO資料是對的 也有在MISO做拉升
想問關於SPI_MASTER設定、SPI_傳接、腳位設定 是否是錯的 //---------------------------------- void Init_SPI_Master (void) { IFS0bits.SPI1IF = 0; // Clear the Interrupt flag IEC0bits.SPI1IE = 0; // Disable the interrupt SPI1CON1bits.DISSCK = 0; // Internal serial clock is enabled SPI1CON1bits.DISSDO = 0; // SDOx pin is controlled by the module SPI1CON1bits.MODE16 = 0; // Communication is a byte (8 bits) SPI1CON1bits.MSTEN = 1; // Master mode enabled SPI1CON1bits.SMP = 0; // Input data is sampled at the middle of data output time SPI1CON1bits.CKE = 1; // Serial output data changes on transition from // active clock state to Idle clock state SPI1CON1bits.CKP = 0; // Idle state for clock is a low level;
//clock = Fcy/20 SPI1CON1bits.PPRE = 0b10;//Primary prescale 4:1 SPI1CON1bits.SPRE = 0b011;//Secondary prescale 5:1 SPI1STATbits.SPIEN = 1; // Enable SPI module // Interrupt Controller Settings IFS0bits.SPI1IF = 0; // Clear the Interrupt flag IEC0bits.SPI1IE = 0; // Disable the interrupt } //------------------
unsigned char SPI_Send(unsigned char data) {
SPI1BUF = data; // Put command into SPI buffer while (!SPI1STATbits.SPIRBF); // Wait for the transfer to finish return SPI1BUF; // Save the read value
} //------------------
void Init_Port(void) { // RP2 SS_Bar TRISBbits.TRISB2 = 0; //RP2 RPOR1bits.RP2R = 0b01001; //RP2 SS_Bar LATBbits.LATB2 = 1;
// RB1 CE TRISBbits.TRISB1 = 0; //RP1 CE LATBbits.LATB1 = 0; // RP4 SCK (Master ) RPOR2bits.RP4R = 0b01000; //Set RP4 as CLK -output RPINR20bits.SCK1R = 0b00100;//Set RP4 as CLK -intput
// RP9 SDO (MOSI ) RPOR4bits.RP9R = 0b00111; //RP9 MOSI
// RP10 SDI (MISO ) RPINR20bits.SDI1R = 0b01010;//RP10 MISO
//Output TRISAbits.TRISA4 = 0; LATAbits.LATA4 = 0; } //------------------
還請大家幫助 謝謝
2016/12/22 21:40
|
|
|
Re: 請問SPI 接收失敗 |
|
資深會員 
註冊日期: 2014/04/12 20:35
所屬群組:
註冊會員
文章: 209
等級: 13; EXP: 48 HP : 0 / 312 MP : 69 / 3671
|
試著量看看 CS腳位有無動作?
2016/12/26 11:59
|
|
您無法在此發表文章
您可以在此觀看文章
您無法回覆文章
您無法編輯自己的文章
您無法刪除自己的文章
您無法發起投票調查
您無法在此投票
您無法上傳附加檔案
您無法不經審核直接發表文章
|
搜尋
Microchip連結
網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
|