CC2564 SPPLEDemo代码整合,总是进入硬中断!
用的TM4C1236H6PM的片子与cc2564,把自己写的最小系统代码与SPPLEDemo代码进行整合时,
Result = BSC_Initialize(HCI_DriverInformation, 0);总是跑步过去,进入硬中断!查了下死在"BSC_SearchGenericListEntry()这句,
也不知道具体代码是什么,就无从下手;(正常如果注释掉 Result = BSC_Initialize(HCI_DriverInformation, 0);是可以正常运行的)!
求给指点迷津!
BSC_Initialize似乎是只能调用一次的
在协议栈安装路径下有说明文档,里面有如下说明
可以查看一下文档做参考BluetopiaCoreAPI.pdf
C:\TI\Connectivity\CC256X BT\CC256x MSP430 Bluetopia SDK\v1.4\Documentation
WBJ:
那个硬中断问题解决了,但是这边还是初始化不成功,返回值是-4;查了下,有如下情况:
按手册,BSC_Initialize这个函数主要进行的是UART1(也即与蓝牙连接的串口)的初始化,跟进程序发现波特率设置不正确;正常程序
UART_IBRD 0x00000003 UART Integer Baud-Rate Divisor [Memory Mapped]
UART_FBRD 0x00000019 UART Fractional Baud-Rate Divisor [Memory Mapped](波特率921600)
是这样的;
出错程序是
UART_IBRD 0x0000001B UART Integer Baud-Rate Divisor [Memory Mapped]
UART_FBRD 0x00000008 UART Fractional Baud-Rate Divisor [Memory Mapped]
这个可以算出是(115200)。
为什么会这样,前面程序都没动;而且很奇怪,我改为其他波特率,也是设置不进去,不管波特率怎么变,这两个寄存器的值都是这个!
是不是之前已经初始化过串口了?
WBJ:
没有啊,debug时单步到此函数时,UART1的寄存器都是初始状态!
那给CC2564初始化配置的串口是多少呢?
WBJ:
#define HCI_UART_GPIO_PERIPH SYSCTL_PERIPH_GPIOB
#define HCI_UART_GPIO_BASE GPIO_PORTB_BASE
#define HCI_UART_PIN_RX GPIO_PIN_0
#define HCI_UART_PIN_TX GPIO_PIN_1
#define HCI_PIN_CONFIGURE_UART_RX GPIO_PB0_U1RX
#define HCI_PIN_CONFIGURE_UART_TX GPIO_PB1_U1TX
配置的是串口1啊,按例程的来配置的,!
单独跑SPPLEDemo是没问题的,问题是现在我整合之后,在这里就初始化不过去;但是去掉BSC_Initialize(HCI_DriverInformation, 0);这个之后,其他的程序也没有操作UART1(跟踪调试,发现处于初始状态)。而且跟踪到这句发现,HCI_DriverInformation这个结构体指针的参数中波特率显示是921600,但就是单步运行过后,得到了上面的初始化信息。就波特率和正常情况下不一样,变成了115200.
因为CC2564是需要下一段firmware进去做初始化的。我猜测要么是这个firmware没有下载成功,或者这个firmware里面的配置通讯串口的波特率是115200。
WBJ:
如果如您所说的,那是什么引起的呢?该如何解决呢?
谢谢!!!
感觉要查一下CC2564初始化的那一块 我没有很底层的2564的代码 看不了
WBJ:
你都没有,我们就更不用说了;能不能帮我想想办法!急需,谢谢!
WBJ:
你说的那段firware知道在哪个目录或是路径下么?我怀疑是不是我没有添加进来!
看看这个 我的目录是C:\TI\Connectivity\CC256X BT\CC256x MSP430 Bluetopia SDK\v1.4\MSP430_Experimentor\Bluetopia\btpsvend
CC256XB.h这个是给CC2564B的
CC256X.h这个是给CC2564的
里面的那个数组就是firmware/patch
WBJ:
谢谢耐心解答,我想我找到原因了,搞了半天还是堆栈设置太小了!
WBJ:
您好, 又遇到问题了, Result = GAP_LE_Set_Pairability_Mode(BluetoothStackID, lpmPairableMode);这个函数返回值是-104,对应下面是哪个错误?
BTPS_ERROR_INVALID_BLUETOOTH_STACK_ID
BTPS_ERROR_INVALID_PARAMETER
BTPS_ERROR_GAP_NOT_INITIALIZED
BTPS_ERROR_LOCAL_CONTROLLER_DOES_NOT_ SUPPORT_LE
BTPS_ERROR_DEVICE_HCI_ERROR
BTPS_ERROR_FEATURE_NOT_CURRENTLY_ACTIVE
Hi Nick,
请问你遇到的BSC_Initialize()返回-4的问题是怎么解决的?原因是什么?我现在遇到同样的问题,没有头绪。。
谢谢您!