问题描述
我想将我的SPI句柄通信定义为面向端口E(EFM32LG控制器),如数据表下面所示。 通过从数据表中查看此表,我们可以看到,要面向PORT E,我们需要为SPI句柄选择USART0 LOC0。但是当我从下面的链接和图片中查看API时,我默认看到了USART0使用LOCATION1,因此我尝试将此位置更改为loc1。
通过查看HANDLE中的Init数据,我仅看到一个名为PORT的变量,它是USART TYPE 扔了它,我试图去USART ROUTE并通过最后显示的寄存器映射将0放置到寄存器的第8 9位来手动更改为零位置。
我是否正确地为手柄的USART0定义了LOCATION ZERO?
SPIDRV_HandleData_t handleData;
SPIDRV_Handle_t handle = &handleData;
SPIDRV_Init_t initData = SPIDRV_MASTER_USART0;
initData.csControl=spidrvCsControlApplication; //manual CS
initData.bitOrder=1; //MSB first send bit order
initData.port->ROUTE &= ~(1 << 8);
initData.port->ROUTE &= ~(1 << 9);
initData.port->ROUTE &= ~(1 << 10);
SPIDRV_Init(handle,&initData);
GPIO_PinOutClear(LED_PORT_A,2); //chip select low starts transmition
SPIDRV_MTransmitB(handle,B31_B24,8);
SPIDRV_MTransmitB(handle,B23_B16,B15_B8,B7_B0,8);
GPIO_PinOutSet(LED_PORT_A,2); // chip select high,end transmition
https://docs.silabs.com/mcu/latest/efm32lg/group-SPIDRV#ga551dc4157363812661bc07602b3e1184
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)