CC2541做主机沁恒579做从机发数据对方收不到的问题

我用CC2541做主机,CH579做从机。主机往从机发数据,从机可以收到。

从机往主机发数据,主机收不到。

代码:

static void performPeriodicTask( void )

{

  uint8 valueToCopy;

  uint8 stat;

PRINT( "222..\n" );

  // Call to retrieve the value of the third characteristic in the profile

  stat = SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR1, &valueToCopy);

  

  if( stat == SUCCESS )

  {

PRINT( "333..\n" );

    SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR6, sizeof ( valueToCopy ), &valueToCopy);

  }

222和333都可以打印,但是主机收不到。

是不是我的方法有问题?CH579往主机发数据该如何发?谢谢!

我看CC2541从机往CC2541主机发送数据是用Notify方式

pReport.len = osal_strlen(str);

        pReport.handle = 0x0000;        

        osal_memcpy(pReport.value, str, pReport.len);

        GATT_Notification( 0, &pReport, FALSE ); 


icon_jpg.gif2.jpg

GATT_ Notification这个函数

connHandle:连接句柄,表示不同的连接;这个怎么使用?

attHandleValueNoti_t *pNoti,

/**

 * Handle Value Notification format.

 */

typedef struct

{

  uint16 handle; //!< Handle of the attribute that has been changed (must be first field)

  uint16 len;    //!< Length of value

  uint8 *pValue; //!< Current value of the attribute (0 to ATT_MTU_SIZE-3)

} attHandleValueNoti_t;

uint16 handle; 这个句柄和onnHandle有什么区别呢?我不太清楚。

authenticated:whether an authenticated link is required

这个authenticated,an authenticated link is required需要还是不需要各取什么值呢?谢谢!


版主在吗?谢谢


首先需要确认几个点:

1、579做从机开启通知手机能不能收到?

2、2541做主机要收到从机通知,需要开启从机通知使能,确认下是否开启;

3、579开启通知发送数据需要将数据分配动态内存,如图所示:

image.png


1.手机可以收到


我获取的沁恒板子从机char4的特征值句柄是44,不知道对不对。

我获取的CC2541从机char4的特征值句柄是46.


手机既然收到说明从机是有发送的,你确认一下之前说的2、3两点有没有完成。

image.png


谢谢!2.如何确认是否开启从机通知使能?

在哪个函数里?


我照着你那张图在从机文件里输入:

icon_jpg.gif3.jpg

提示出错。

好像不识别。

你说的CH579开启通知发送数据是从机吗?


打开通知如何打开呢?CC2541是往char4特征值句柄+1的位置写0x0001。

CH579也是这样吗?谢谢


只有登录才能回复,可以选择微信账号登录