WINCE SPI1 寄存器无法修改
1.
pSPIregs = (volatile S3C6410_SPI_REG *)DrvLib_MapIoSpace(S3C6410_BASE_REG_PA_SPI1, sizeof(S3C6410_SPI_REG), FALSE);
2.
pSPIregs->CH_CFG = CPOL_FALLING|CPHA_FORMAT_A;
pSPIregs->CLK_CFG = 0x0502;
pSPIregs->MODE_CFG = MODE_DEFAULT;
2配置后打印出来的寄存器和没配置的一样?为什么这些寄存器无法更改?
SPI Config= 00000040
SPI Clock Config = 00000000
SPI Mode Config = 00000000
请大家给予帮助,谢谢!
飞凌提供的驱动也无法正常使用,示波器里根本就没有任何CLOCK的波形。
但是通过上面的操作对于GPIO就可以,SPI0和SPI1的寄存器都无法修改。 楼主是自己写的一个spi的驱动还是修改的我们写好的呢? 首先感谢路飞的回复,我使用了你们的驱动(TE6410 + SPI驱动),反馈的寄存器都是最原始的状态,只能读不能改,后来我自己搞一了个非常简单的驱动,也无法修改该寄存器,在网上找了一个叫MEMMgr的驱动调试工具(直接写地址的)也是只能读不能改,这个问题困惑我两周了{:soso_e134:} 本帖最后由 conspec 于 2013-8-9 10:34 编辑
飞凌-路飞 发表于 2013-8-8 21:44 static/image/common/back.gif
楼主是自己写的一个spi的驱动还是修改的我们写好的呢?
都是下载最新的文件。
是操作系统配置导致的吗?
查了一下微软的资料:
User
0x70000000 - 0x7FEFFFFF
255 MB
Shared system heap
Shared heap between the kernel and processes.
Kernel and kernel servers can allocate memory in the heap and write to it.
Read-only for user processes.
Enables a process to get data from a server without having to make a kernel call.
是不是驱动配置的有问题?
终于找到问题了:
#if(SPI_SELECT == SPI1) //使用SPI1
pSYSCONregs->PCLK_GATE |= SPI1_POWER_ON;
#else
pSYSCONregs->PCLK_GATE |= SPI0_POWER_ON;
#endif
必须把SPI对应PCLK的Enable位打开才可以对SPI Register Controller进行读写,这个芯片文档上我是没找到。 恭喜楼主,其实有时候问题是需要自己孜孜不倦的钻研下去的,这样的解决方法才属于自己!
页:
[1]