完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
纯新手,求教SPI控制4个数码管分别同时显示1234,硬件电路如图,GPIO58~61控制数码管点亮,74HC164作为驱动芯片,GPIO54作为SPI输出,GPIO56作为时钟信号,程序运行后数码管不亮是什么情况?程序如下:
#include "DSP2833x_Device.h" // DSP280x头文件 #include "DSP2833x_Examples.h" // DSP280x例程中用到的头文件 /****************函数声明*******************/ void delay_loop(void); void spi_xmit(Uint16 m); void spi_fifo_init(void); void spi_init(void); void Gpio_ledwei_init(); /***************全局变量定义****************/ Uint16 LedBuffer[4]={0xc0,0xf9,0xa4,0xb0}; Uint16 wei[4]={0x20,0x10,0x08,0x04}; int a=0; void delay() { Uint32 i; for(i=10000;i>0;i--); } void main(void) { InitSysCtrl(); InitSpiaGpio(); //开发板使用SPIA Gpio_ledwei_init(); DINT; spi_fifo_init(); // 初始化Spi的FIFO spi_init(); // 初始化SPI InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); while(1) { for(a=0;a<4;a++) { GpioDataRegs.GPBDAT.all=wei[a]; delay(); spi_xmit(LedBuffer[a]); delay(); GpioDataRegs.GPBCLEAR.all=1; delay(); } a=0; } } } //初始化SPI函数 void spi_init() { SpiaRegs.SPICCR.all =0x004F;// SPI软件复位, 极性位为1(下降沿发送数据), 每次移 //进和移出16位字长度;禁止SPI内部回送(LOOKBACK)功能; SpiaRegs.SPICTL.all =0x0006; // 使能主机模式,正常相位,使能主机发送,禁止接收 //溢出中断,禁止SPI中断; SpiaRegs.SPIBRR =0x007F; //SPI波特率=25M/128 =195.3KHZ; SpiaRegs.SPICCR.all =0x00CF;//停止SPI软件复位准备接收或发送;禁止回送模式; SpiaRegs.SPIPRI.bit.FREE = 1; // 自由运行 } //发送SPI数据 void spi_xmit(Uint16 m) { SpiaRegs.SPITXBUF=m; } //初始化SPI FIFO void spi_fifo_init() { SpiaRegs.SPIFFTX.all=0xE040;//使能FIFO;清除发送中断标志位;禁止FIFO发送中断; //发送中断级别定义为0; SpiaRegs.SPIFFRX.all=0x204f;//清除FF溢出标志位;清除溢出接受中断标志位;禁止 //FF接受中断;接受中断级别为16; SpiaRegs.SPIFFCT.all=0x0;//SPITXBUF到移位寄存器传送不延迟; } void Gpio_ledwei_init() { EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 0; GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 0; GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0; GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0; GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; GpioCtrlRegs.GPBPUD.bit.GPIO58=0; GpioCtrlRegs.GPBPUD.bit.GPIO59=0; GpioCtrlRegs.GPBPUD.bit.GPIO60=0; GpioCtrlRegs.GPBPUD.bit.GPIO61=0; GpioCtrlRegs.GPBPUD.bit.GPIO34=0; GpioCtrlRegs.GPBDIR.bit.GPIO58 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO59 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO61 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; EDIS; } //=========================================================================== // No more. //===========================================================================
|
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
2553 浏览 0 评论
708 浏览 0 评论
普中科技F28335开发板中,如何使用aic23播放由代码生成的正弦波
2986 浏览 0 评论
3751 浏览 1 评论
1227 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 16:57 , Processed in 0.874459 second(s), Total 78, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号