完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
求助大神,我在练习SPI过程中遇到一些问题。28335通过SPI给一位数码管发数(中间是74HC595)下边是代码,只发了一个数,但是SPIclk没有信号,数据根本没有发出去,是什么问题导致的呢
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" //const char table[16]={0x0c00,0xf900,0xA400,0xB000,0x9900,0x9200,0x8200,0xF800,0x8000,0x9000}; //int i; void spi_intial()//SPI初始化 { SpiaRegs.SPICCR.all=0x0047;//使SPI处于复位模式,下降沿,8位数据 SpiaRegs.SPICTL.all=0x0006;//主控模式,一般时钟模式 //关闭SPI中断 SpiaRegs.SPIBRR=0x007F;//配置波特率 SpiaRegs.SPICCR.all=SpiaRegs.SPICCR.all|0x0080;//退出复位状态 EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO54=1;//设置通用引脚为SPI引脚 GpioCtrlRegs.GPBMUX2.bit.GPIO56=1; EDIS; } void gpio_init() { EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO57=0;//GPIO27设置为一般I/O,输出 GpioCtrlRegs.GPBDIR.bit.GPIO57=1; EDIS; GpioDataRegs.GPBDAT.bit.GPIO57=0;//GPIO57接口为74HC595D锁存信号 } void main(void) { unsigned long int k=0; InitSysCtrl(); DINT; IER=0x0000; IFR=0x0000; spi_intial(); gpio_init(); //spi_fifo_init(); while(1) { //for(i=0;i<8;i++) //{ for(k=0;k<10;k++){} GpioDataRegs.GPBDAT.bit.GPIO57=0; SpiaRegs.SPITXBUF=0x3f00; while(SpiaRegs.SPISTS.bit.INT_FLAG!=1){}//等待发送 SpiaRegs.SPIRXBUF=SpiaRegs.SPIRXBUF;//清零 //} GpioDataRegs.GPBDAT.bit.GPIO57=1; for(k=0;k<10;k++){} } } |
|
相关推荐
2个回答
|
|
|
用的是硬件还是软件SPI呢
|
|
|
|
|
|
你看下你的ADC芯片的输入时钟对不对,如果输入时钟没问题的话SCLK不对检查下芯片跟DSP的地线是否共地
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
TMS320C6748 板卡设计中是否一定需要有SDRAM或者DDR
2036 浏览 0 评论
1069 浏览 0 评论
3725 浏览 1 评论
【六岳微LY-F335开发板试用体验】epwm启动ADC并在OLED上显示结果
4572 浏览 0 评论
【六岳微LY-F335开发板试用体验】软件开发环境及调试下载
4613 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 10:16 , Processed in 0.503165 second(s), Total 47, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
8591