完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
所用芯片:TM4C1294NCPDT
所用模块:W25Q16 以下为初始化SSI2的函数: void W25QXX_Init_2(void)//初始化SSI2 { SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);//使能SPI2时钟 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);//使能GPIOD时钟 SysCtlPeripheralReset(SYSCTL_PERIPH_SSI2); //SPI2 IO 口定义 GPIOPinConfigure(GPIO_PD3_SSI2CLK); GPIOPinConfigure(GPIO_PD0_SSI2XDAT1);//MISO GPIOPinConfigure(GPIO_PD1_SSI2XDAT0);//MOSI GPIOPinTypeSSI(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_3); SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,SSI_MODE_MASTER, 1000000, 8); SSIEnable(SSI2_BASE);//使能SPI2 uint32_t dummy[1]; while(SSIDataGetNonBlocking(SSI2_BASE, &dummy[0])); GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_2);//PD2为片选 GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_2, 0xFF); } 此处应注意两点,一是配置时钟极性和相位时,主设备的时钟极性和相位与从设备 的时钟和相位正好相反。此处W25Q16模块,查看其对应手册可知,该模块时钟线 在空闲时为高电平(即CPOL Clock Polarity 为1),在SCK第二个跳变沿采样(CPHA Clock Phase为1),即mode3模式,那么对应的主机配置时就应该选择mode0模式。 二是时钟取系统时钟,但是SysCtlClockGet()函数好像有点问题,大家可以试试 ROM_SysCtlClockGet()函数来获取系统时钟,如果这个也不行就只能自己配置系 统时钟。 后续的关于W25Q16的具体读写操作函数就不赘述了,如有需要可以私信我。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:33 , Processed in 1.047765 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号