微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2564 SPPLEDemo代码整合,总是进入硬中断!

CC2564 SPPLEDemo代码整合,总是进入硬中断!

时间:10-02 整理:3721RD 点击:

用的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的问题是怎么解决的?原因是什么?我现在遇到同样的问题,没有头绪。。

谢谢您!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top