共2条
1/1 1 跳转至页
LPC2114,SPI 【求助】关于LPC2114的SPI传输问题

问
请教各位老鸟:
最近,我和同事用LPC2114做一个系统,其中用到了SPI传输系统。
我将SPI1设置为成主机,找了个GPIO端口做外围器件的片选信号。
PENSEL1也设置成了SPI模式,将相关的四个引脚都按照手册上设置
完毕。程序采用了基础实验书上的例子,将相关一些自己的东西加了进
去。
调试中,发现输出脚MOSI和SLK1都没有信号,CS1片选信号正常,
后来,将该两脚改为GPIO模式,能正常。
手册步骤如下:
1. 将SPI 时钟计数寄存器设置为所需要的值。(设为了0x52)
2. 将SPI 控制寄存器设置为所需要的设定。 (设为了0x30)
3. 将要发送的数据写入SPI 数据寄存器。此写操作启动SPI 数据传输。
(调用函数(基础实验中的例子,仅仅改变了CS1这个片选信号)
4. 等待SPI 状态寄存器中的SPIF 位置位。SPIF 位将在SPI 数据传输的
最后一个周期之后置位。
5. 读取SPI 状态寄存器。 ( 未读,感觉没有读的必要,且示例程序中
也没有此项功能)
6. 从SPI 数据寄存器中读出接收到的数据(可选)
7. 如果有更多数据需要发送,则跳到第3 步。
在寄存器中也看到,SPI状态寄存器和控制寄存器确实也有改动,
但数据寄存器却没有丝毫的变化。
“SPI 传输完成标志。为1 时表示一次SPI 数据传输完成。在主模式
下,该位在传输的最后一个周期置位。在从机模式下,该位在SCK 的最后
一个数据采样边沿置位。当第一次读取该寄存器时,该位清零。然后才能
访问SPI 数据寄存器。注:SPIF 不是SPI 中断标志。中断标志位于SPINT
寄存器中。”
以上是手册中资料,我采用的是主模式,在一次传输结束后,确实也
有SPIF的变动,但却没有发现数据信号。
不知道SPI模式下,还有什么其他要注意的问题吗?恳请各位老鸟
指点。 答 1: 请求帮助请做过这方面的老鸟给点提示吧 答 2: 【求助】关于LPC2114的SPI传输问题嗯,我前天也碰到你这样的问题,查了前面的帖子,才知道,如果使用SPI1,要将SCK1接一个10K的上拉电阻,你接一下试试看。数据和CLK信号都能输出了。 答 3: 【求助】关于LPC2114的SPI传输问题Sorry,写错了,应该是SSEL1接10K上拉电阻,而非SCK1。 答 4: 估计是配置问题,因为你模拟SPI都行 答 5: 配置好肯定没配置好,我主机用的好好的,你试试书上哪个led实验,看有输出没。一定有的
最近,我和同事用LPC2114做一个系统,其中用到了SPI传输系统。
我将SPI1设置为成主机,找了个GPIO端口做外围器件的片选信号。
PENSEL1也设置成了SPI模式,将相关的四个引脚都按照手册上设置
完毕。程序采用了基础实验书上的例子,将相关一些自己的东西加了进
去。
调试中,发现输出脚MOSI和SLK1都没有信号,CS1片选信号正常,
后来,将该两脚改为GPIO模式,能正常。
手册步骤如下:
1. 将SPI 时钟计数寄存器设置为所需要的值。(设为了0x52)
2. 将SPI 控制寄存器设置为所需要的设定。 (设为了0x30)
3. 将要发送的数据写入SPI 数据寄存器。此写操作启动SPI 数据传输。
(调用函数(基础实验中的例子,仅仅改变了CS1这个片选信号)
4. 等待SPI 状态寄存器中的SPIF 位置位。SPIF 位将在SPI 数据传输的
最后一个周期之后置位。
5. 读取SPI 状态寄存器。 ( 未读,感觉没有读的必要,且示例程序中
也没有此项功能)
6. 从SPI 数据寄存器中读出接收到的数据(可选)
7. 如果有更多数据需要发送,则跳到第3 步。
在寄存器中也看到,SPI状态寄存器和控制寄存器确实也有改动,
但数据寄存器却没有丝毫的变化。
“SPI 传输完成标志。为1 时表示一次SPI 数据传输完成。在主模式
下,该位在传输的最后一个周期置位。在从机模式下,该位在SCK 的最后
一个数据采样边沿置位。当第一次读取该寄存器时,该位清零。然后才能
访问SPI 数据寄存器。注:SPIF 不是SPI 中断标志。中断标志位于SPINT
寄存器中。”
以上是手册中资料,我采用的是主模式,在一次传输结束后,确实也
有SPIF的变动,但却没有发现数据信号。
不知道SPI模式下,还有什么其他要注意的问题吗?恳请各位老鸟
指点。 答 1: 请求帮助请做过这方面的老鸟给点提示吧 答 2: 【求助】关于LPC2114的SPI传输问题嗯,我前天也碰到你这样的问题,查了前面的帖子,才知道,如果使用SPI1,要将SCK1接一个10K的上拉电阻,你接一下试试看。数据和CLK信号都能输出了。 答 3: 【求助】关于LPC2114的SPI传输问题Sorry,写错了,应该是SSEL1接10K上拉电阻,而非SCK1。 答 4: 估计是配置问题,因为你模拟SPI都行 答 5: 配置好肯定没配置好,我主机用的好好的,你试试书上哪个led实验,看有输出没。一定有的
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 |