完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
SpiaRegs.SPICCR.all = 0x07;///进入初始状态,数据在上升沿输出,自测禁止,8位数据模式
/*操作控制寄存器设置*/ SpiaRegs.SPICTL.all = 0x06;///正常的SPI时钟方式,主动模式,使能发送,禁止中断 /*波特率的设置*/ SpiaRegs.SPIBRR = 0x1D;//波特率 = LSPCLK/(SPIBRR+1)= 30/30 = 1M SpiaRegs.SPICCR.all = 0x8a; //退出初始状态 SPICCR的配置控制寄存器: SpiaRegs.SPICCR.bit.RESET = 0; //初始化SPI操作标志到复位状态 SpiaRegs.SPICCR.bit.CLKPOLARITY = 0; //设置上升沿输出数据,下降沿输入数据 SpiaRegs.SPICCR.bit.SPILBK = 0; //禁止SPI回送模式 SpiaRegs.SPICCR.bit.SPICHAR = 7; //一次移入或移出8个字符 SPICTL的操作控制寄存器: SpiaRegs.SPICTL.bit.OVERRUN = 0; //禁止溢出中断 SpiaRegs.SPICTL.bit.CLK_PHASE = 0; //不延时相位 SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1; //设置为主机 SpiaRegs.SPICTL.bit.TALK = 1; //使能主机/从机发送使能位 SpiaRegs.SPICTL.bit.SPIINTENA = 0; //不使能SPI中断位 SpiaRegs.SPIBRR = 0x1D; //设置波特率=LSPCLK/(SPIBRR+1)=30MHz/30=1MHz SpiaRegs.SPICCR.bit.RESET = 1; //SPI准备或接受下一个字符 SpiaRegs.SPICCR.bit.SPICHAR = 10; //一次移入或移出11个字符?????????????????????????? 问一、在板子上调试的时候发现只有发送SpiaRegs.SPICCR.bit.SPICHAR = 10; 即发送字符长度为11位的时候代码才能得到正确的结果,但数码管所需要得到的数据只有8位啊。 问二、板子上数码管使用的是74HC595D芯片,芯片的datesheet上写的是在时钟上升沿输入串行数据,从低位开始 在时钟下降沿输出串行数据。 当我改成SpiaRegs.SPICCR.bit.CLKPOLARITY = 1; //设置下降沿输出数据,上升沿输入数据 得到的结果也不对 只有SpiaRegs.SPICCR.bit.CLKPOLARITY = 0; //设置上升沿输出数据,下降沿输入数据 才得到正确的结果 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
2626 浏览 0 评论
717 浏览 0 评论
普中科技F28335开发板中,如何使用aic23播放由代码生成的正弦波
3058 浏览 0 评论
3824 浏览 1 评论
1241 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 04:03 , Processed in 0.539735 second(s), Total 45, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号