TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3000不能读取MAC

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)都是由于丢失了中断,估计你的中断是一直都开着,没有在合适的时候,处理中断。

赞(0)
未经允许不得转载:TI中文支持网 » CC3000不能读取MAC
分享到: 更多 (0)