CC3000 nvmem_set_mac_address()可以,但nvmem_get_mac_address( );不行
VV:
你代码怎么实现的
SPI通信没问题吧!MISO正常吧
yong cai1:
回复 VV:
你好,后来我找到原因了。
我是用的STM8S单片机,SPI通信没问题,IRQ有问题,STM8S丢失了IRQ下降沿中断,导致进入了hci_event_handler( ) 的while(1){}死循环,但此时IRQ引脚为低电平。后来我修改了程序,在hci_event_handler的while(1)中判断IRQ是否为低电平,如果为低电平,就证明IRQ已产生下降沿中断,单片机丢了,然后触发SPI接收中断。
然后一般的操作能正常进行,后来用recvefrom( )函数接收UDP数据包时又出问题了,要是在一分钟内收不到数据,recvefrom( )函数就会返回 -57,以后再也收不到数据了。配置成阻塞和非阻塞都有这个问题,这个问题还没解决。
Yonghua Pan:
回复 yong cai1:
你的recvfrom()是怎么调用的?你的RECV_TIMEOUT设置的是多久?
wen liu2:
回复 VV:
你好,同样遇到不能读取MAC,能读版本号,也能写,但不知道为什么就是读不出来,程序停在SimpleLinkWaitData(buff, 0, 0);里的hci_event_handler(pBuf, from, fromlen);中的while(1),期间有中断产生,SPI也能读到数字为02 00 00 00 05 04 00 82 01 00
yong cai1:
回复 wen liu2:
你用的是什么MCU嘛,一般情况程序停在hci_event_handler(pBuf,from,fromlen)都是由于丢失了中断,估计你的中断是一直都开着,没有在合适的时候,处理中断。