LPC ARM SPI0改成16位的 - cpubbs虚拟仪器论坛 - cpubbs论坛免费虚拟仪器博客 labview虚拟仪器讨论区 - cpubbs论坛 虚拟仪器论坛|labview论坛|labwindows论坛|vi|cvi|数据采集卡|入门教程|初学|软件下载|虚拟仪器免费博客|虚拟仪器电子商务|虚拟仪器商城|虚拟仪器人才中心|图形化单片机编程cpuview|虚拟仪器在线商城 - Powered by X-Space
cpubbs论坛,专业的labview,labwindows,虚拟仪器数据采集卡交流论坛,免费博客,人才中心,电子商贸,欢迎您的光临!

LPC ARM SPI0改成16位的

上一篇 / 下一篇  2008-02-03 17:54:19 / 个人分类:转载类

原贴地址:

 

这是关于LPC2136的SPI0 的问题:以前是8 bits per transfer。今天把它改成16 bits per transfer:改动如下:
1、
#define SPDR            (*((volatile unsigned char *) 0xE0020008)) ==>
#define SPDR            (*((volatile unsigned short *) 0xE0020008))
2、
SPCR  = (0 << 3) |     // CPHA = 0, 数据在SCK 的第一个时钟沿采样
        (1 << 4) | // CPOL = 1, SCK 为低有效
        (1 << 5) |     // MSTR = 1, SPI 处于主模式
        (0 << 6) |     // LSBF = 0, SPI 数据传输MSB (位7)在先
        (1 << 7);     // SPIE = 1,
==>
SPCR  =(1 << 2 )|  //BitEnable
        (0 << 3) |     // CPHA = 0, 数据在SCK 的第一个时钟沿采样
        (1 << 4) | // CPOL = 1, SCK 为低有效
        (1 << 5) |     // MSTR = 1, SPI 处于主模式
        (0 << 6) |     // LSBF = 0, SPI 数据传输MSB (位7)在先
        (1 << 7);     // SPIE = 1,  
结果呢?系统无法运行,死了?!
把ZLG的SPI例程也用来调试,结果一样死在
while( 0 == (SPI_SPSR & 0x80)); // 等待SPIF置位,即等待数据发送完毕

郁闷!后来急中生智地想,是不是SPCR的11:8 BITS 也应该写一次呢?
于是做如下更改:
1、
#define SPCR            (*((volatile unsigned char *) 0xE0020000))
==>
#define SPCR            (*((volatile unsigned short *) 0xE0020000))
2、
SPCR  =(1 << 2 )|  //BitEnable
        (0 << 3) |     // CPHA = 0, 数据在SCK 的第一个时钟沿采样
        (1 << 4) | // CPOL = 1, SCK 为低有效
        (1 << 5) |     // MSTR = 1, SPI 处于主模式
        (0 << 6) |     // LSBF = 0, SPI 数据传输MSB (位7)在先
        (1 << 7);     // SPIE = 1
==>
SPCR  =(1 << 2 )|  //BitEnable
        (0 << 3) |     // CPHA = 0, 数据在SCK 的第一个时钟沿采样
        (1 << 4) | // CPOL = 1, SCK 为低有效
        (1 << 5) |     // MSTR = 1, SPI 处于主模式
        (0 << 6) |     // LSBF = 0, SPI 数据传输MSB (位7)在先
        (1 << 7) |     // SPIE = 1
        (0x00<<8);
结果发现,正常工作了!


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2024-05-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 33687572
  • 日志数: 168
  • 图片数: 6
  • 影音数: 5
  • 商品数: 4
  • 文件数: 105
  • 建立时间: 2006-11-02
  • 更新时间: 2016-04-08

RSS订阅

Open Toolbar