PIC16F1779用SPI和MCP2515通讯的问题

[复制链接]
 楼主| zhoubin118 发表于 2020-2-11 15:09 | 显示全部楼层 |阅读模式
本帖最后由 zhoubin118 于 2020-2-11 15:12 编辑

PIC16F1779和MCP2515通讯的问题:
//----------------------------------------------------------------------
//                             初始化SPI
//----------------------------------------------------------------------
void INT_SPI()
{
              SSP1CON1=0x10;          //SSP1CON1<3:0>=0001SPI设置为主模式,时钟= FOSC/16   空闲状态,时钟为高电平  
             SSPEN=0;                        //关闭SPI功能,便于设置SPI
              RB0PPS=0x23;               //PPS外设输出功能SDO对应的代码是 0010 0011 这里RB0SPISDO
              RB2PPS=0x21;               //PPS外设输出功能SCK对应的代码是 0010 0001 这里RB2SPISCK
              SSPDATPPS=0x09;         //PPS外设输入功能SSPDATPPS选择输入口为RB1的话,对应的代码是0000 1001
              SSP1CON2bits.SEN=1;
              SSP1STATbits.SMP=0;
              SSP1STATbits.CKE=1;
              SSPEN=1;                //使能SPI
              SSP1STAT=0;             //清除BF
}
//-----------------------------------------------------
//                  初始化CPU
//------------------------------------------------------
void initcpu(void)
{
       ANSELB=0x00;             //B模拟量输入口全部设置关闭,为数字IO口
       ANSELC=0x00;             //C模拟量输入口全部设置关闭,为数字IO口   
       TRISB=0xFA;             //B口对应的位设置输入和输出   
       TRISC=0xC0;
       OSCCON=0x78;            //配置内部振荡时钟为16MHz
}










相关帖子

 楼主| zhoubin118 发表于 2020-2-11 15:17 | 显示全部楼层
我用PIC16F1779的RB0(SDO)接MCP2515的14脚(SDI)
RB1(SDI)接MCP2515的15脚(SDO)
RB2(SCK)接MCP2515的13脚(SCK)
MCP2515随PIC16F1779的时钟节拍,有输出信号,但PIC16F1779却收不到,SSP1BUF中读出来是0xFF。
 楼主| zhoubin118 发表于 2020-2-11 15:19 | 显示全部楼层
我用示波器观察了MCP2515的15脚随单片机的SCK有波形输出,但就是SSP1BUF就是不能收到
幸福小强 发表于 2020-2-13 10:45 | 显示全部楼层
可以找其他系列跟这个通信的例子看看。
 楼主| zhoubin118 发表于 2020-2-27 19:39 | 显示全部楼层
幸福小强 发表于 2020-2-13 10:45
可以找其他系列跟这个通信的例子看看。

请问有邮箱吗?我想向您请教一下,谢谢!
海中水 发表于 2020-3-2 16:20 | 显示全部楼层
有示波器的话,看一下对应数据线上的波形
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部