完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
vuywsdfwf 发表于 2018-8-1 07:25 您好,这个我写的初始化函数和代码,我在主函数while(1)里面一直调用 spi发送函数,用示波器看不到clk信号和数据,不知道问题出在哪里? void C6747_SPI_init ( ) [ //配置spi0的 cs clk mosi 为相应的功能引脚 PINMUX7 = 0x18111888; // EMIFB, 1.SPI0/CS P54 /2.SPIEN,P53/3.SPICLK PIN52 /4.SPISIMO PIN51 //1. Reset the SPI by clearing the RESET bit in the SPI global control register 0 (SPIGCR0) to 0. SPI0_SPIGCR0 =0x00; DELAY_US1(1000); // 2. Take the SPI out of reset by setting SPIGCR0.RESET to 1. SPI0_SPIGCR0 =0x01; SPI0_SPIGCR1 =0 |(0<<24) |(1<< 16) |(1<<1) |(1<<0); SPI0_SPIPC0 =0 | (1<<11) //DI | (1<<10) //DO | (1<<9) //CLK | (1<<1) //EHI | (1<<0) ; //EH0 SPI0_SPIPC1 =0 | (1<<11) | (0<<10) | (1<<9) | (1<<0); // SPIx_SCS[n]管脚方向为输出. spidat1= 0 | (1 << 28)// The chip select signal is held active | (0<< 24) | (2<< 16) | (0 << 0) ; SPI0_SPIDAT1 =spidat1; SPI0_SPIFMT0 = 0 | (0 << 20) | (0 << 17) | (1 << 16) // SPI clock delay. | (4 << 8) // SPI clock frequency = SPI module clock/(PRESCALE + 1) | 8; // SPI data word length. SPI0_SPIDELAY =0 |(8<<24) |(8<<16); SPI0_SPIDEF =0 |(1<<1) |(1<<0); SPI0_SPILVL =0 |(0 <<8) |(0<<6) |(0<<4); SPI0_SPIGCR1 |= (1 << 24); // SPI enable. ] void C6747_SPI_write_read ( Uint8 data ) [ while( (SPI0_SPIBUF & 0x1000000) ); // 0<<29 发射寄存器空, 1<<28 位发射错误 SPI0_SPIDAT1 |= data; ] |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
914 浏览 1 评论
1116 浏览 0 评论
648 浏览 1 评论
512 浏览 1 评论
698 浏览 2 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
396浏览 29评论
1357浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
484浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
385浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
251浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-30 12:42 , Processed in 1.138683 second(s), Total 66, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191