完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我们使用北欧nRF905的RF模块,并与PIC18F25k80连接。以下是我的SPI例程:void SPI_Master_Init(void){SSPCON1=0x00;SSPSTAT=0x00;TRISC=0x90;//SCK,SDO AS OUTPUT,SDI AS INPUT SPI_CS_TRIS=0;PORTC=0x00;//INItiALISE PORT C SPI_CS=1;//CS AS H身份识别SSPSTAT=0x40;//CKE为高SSPCON1=SPI_SSPEN+SPI_CKP_SPI_CKP_CKP_LO+SPI_CKP_CKP_LO+SPI_MASTER_MASTER_CLK64;//启用ssp,在空闲cond低ckp,clk-fosc/64}/**************************************************************************************************************************************************************************************************************UF=字节;//l在(BF==0)//等待,直到从从从{RxChar=SSPBUF{RxChar=SSPBUF;返回(RxChar);}/**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************void Spi CS.(void){SPI_CS 1;//取消选择从设备}但是面临着与北欧通信的问题。在示波器上,我检查了北欧开发板上的SPI通信,并与PIC接口后。这里要用软SPI吗?请帮助我。谢谢。
|
|
相关推荐
3个回答
|
|
你好,Ric,谢谢你的答复。这是SPI端口引脚的定义-/**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************#定义SPI_SDO_TRIS TRISC5/*********************************/define WRC 0x00//Write配置寄存器命令define RRC 0x10//Read配置寄存器命令define WTP 0x20//Wrte TX Payload命令define RTP 0x21//Read TX Payload命令定义WTA 0x22/写入TX地址命令定义RTA 0x23//读取TX地址命令定义RTA 0x23//读取TX地址命令定义RRP 0x24//读取RX有效载荷命令\定义CC0XXX40X4//读取RXXX有效有效载荷命令\定义CC0XXXXXXXXXXXXXXXXXXXXXXX负载命令\\\\\\\\\\定义CC定义CC 5 PWR=高;TRX_CE=LOW;SPI_CS=HIGH;延迟(5);SPI_CS=延迟(5);延迟(5);SPI_CS=LOW;//芯片启用NewChar=NewChar=SPI_W写(SPI_SPI_Write_SPI_Write(RTA);//读TX地址命令(i=0;i;0;i<4+++++)RxBuf=RxBuf=RxBuf=SPI_Write_SPI_Write(0);SPI_CS=SPI_CS=SPI_CS=HI=LO=LO=SPI_CS=HIGH(0);SPI_CS=HIGH;SPI_CS真实d configuration registerSSPBUF值为0xFF。实际上我没有得到什么问题,因为根据北欧数据表,所有引脚都设置正确。对于SPI通信,我获得读寄存器命令的0xFF值。谢谢。
|
|
|
|
也许不是你的问题,但是请换一下有LAT寄存器的PIC(像你的PIC18F25k80),你应该一直写到LAT寄存器的各个位,而不是PORT寄存器。RA5等同于PORTAbits。RA5LATA5等同于LATAbit。围绕你的代码。(这在我的签名的链接中解释)否则您的代码会以微妙的方式被破坏,例如,上面的代码正好转移到斜体文本,您有:这可能意味着
|
|
|
|
您好,RIC,感谢您的答复得到SPI工作,这是问题的端口引脚RC0用于北欧信号PWR信号。谢谢。
|
|
|
|
只有小组成员才能发言,加入小组>>
5007 浏览 9 评论
1923 浏览 8 评论
1853 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3070 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2145 浏览 5 评论
579浏览 1评论
436浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
478浏览 0评论
373浏览 0评论
IPECMD命令烧录AVR128DA48芯片,报找不到芯片错误
856浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-19 01:27 , Processed in 1.176118 second(s), Total 86, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191