NRF52833从零开发问题记录

开发环境搭建

1、安装集成开发环境IAR8.30

2、安装JLINK驱动

3、下载官方资料SDK17.1.0,该资料包包含了协议栈可执行文件及所有需要例程

4、安装SDK包中的插件,如下


说明:网上有介绍使用这些工具nRFgo StudioCommand-Line-Tools,本例中未使用。安装上述软件及驱动,安装jlink驱动后下文会用到J-link RTT viewerJ-Flash工具。前者用于调试查看打印信息,后者用于下载可执行文件。

5、手机或电脑下载nrf connect应用软件,该软件由Nordic公司开发。本例中用苹果手机下载应用测试。

6、使用JLINK以SWD模式连接电脑与目标芯片(nrf52833)。

7、芯片的运行需要下载两部分代码,使用J-FLASH分别下载协议栈(SoftDevice)与用户代码。协议栈命名Sxxx所表示的功能,自行网上查阅。

J-FLASH下载说明

1、打开J-flash选择与芯片对应的模板工程,未找到52833工程,但采用52832也可使用。

2、按下图连接目标芯片。下载前需擦除整片falsh,之后将两部分代码写入芯片内。调试过程中发现编译好的代码,需先通过j-falsh下载代码后,通过IAR才可以调试。该问题暂时忽略

到此基本可以开始随便选择一个官方例程进行开发调试。

调试问题汇总

本文以\nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart工程为例进行问题说明。

通过J-FLASH下载协议栈S113和串口透传pca10100例程可执行文件。重启设备,打开手机测试APP,扫描连接(Nordic_UART),设备名称可以自己修改,在客户端界面可以进行收发测试。如果设备信号弱,可以通过函数sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV,

m_advertising.adv_handle, 8);nrf52833调整功率范围(-40dbm~8dbm)。本例中将信号功率调至最大。

1、编译问题

可以查找官方release说明,将x改为n,编译通过

2、调试问题

《1》调试状态下为程序打断点后,不能继续运行。查找资料发现,属于正常现象。调试射频通信时程序不能中断,可以采用打开DEBUG宏的方式,通过J-link RTT viewer进行调试信息打印

《2》打开DEBUG及连接jlinkRTT的情况下,程序进休眠模式时,sd_power_system_off()会返回错误本工程将sleep_mode_enter屏蔽。正式使用时根据项目情况可将DEBUG宏删除后使用该功能

《3》该工程中使用了串口,但是串口接收引脚配置时,未进行上下拉,运行过程中出现串口通信错误APP_UART_COMMUNICATION_ERROR。板卡受干扰时,极易出现该问题将串口接收引脚配置改为上拉

《4》当程序中调用ble_nus_data_send函数的情况下,会出现协议栈报错0x3401(13313),表示系统属性缺失。网络搜索后查找到如下解决办法将ble_nus_data_send函数中return sd_ble_gatts_hvx(conn_handle, &hvx_params);替换为如下代码

       err_code =  sd_ble_gatts_hvx(conn_handle, &hvx_params);

    if (err_code ==  BLE_ERROR_GATTS_SYS_ATTR_MISSING)

       {

           err_code =  sd_ble_gatts_sys_attr_set(conn_handle, NULL, 0, 0);

         APP_ERROR_CHECK(err_code);

           // Try again

           err_code = sd_ble_gatts_hvx(conn_handle, &hvx_params);

    }

    return err_code;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容