【蓝牙初尝试2】Keil5+nRF52832 烧录程序

        首先烧录一段五通道SAADC采集程序。SA (successive-approximation) ADC意为逐次逼近模数转换,所有nRF52xx系列处理器中内部ADC成为SAADC。我使用的是EasyDMA单缓冲多通道采样案例,将其通道数改为了五个。

        官方SDK中,EasyDMA会提供软件缓冲存放ADC的结果,缓冲寄存器满了之后会触发中断,然后在中断内读取缓冲寄存器的值,这种方式可以大大提高采样速率。当ADC采样任务触发ADC的转换结果可以通过EasyDMA存储到RAM内的结果缓冲内。

        采集过程:

        烧录前,先编译一下所有文件:

        没有问题后,连接Jlink仿真器,打开nRFgo Studio,nRFgo Studio可以实现协议栈hex文件应用程序hex文件以及Boot程序hex文件的下载。

        选择:【nRFx Programming - Erase all】擦除闪存中的程序,若显示【Erase completed】则说明擦除成功。每次烧录其他程序之前,需要先擦除全片。

        当只需要运行外设部分程序时,例如这里的SAADC,可以直接下载应用hex文件,点击【Program Application-Browse】选择需要下载的应用程序hex文件,路径如下所示:        

        打开串口助手(随便哪个都可以,这里用的是Vofa+),选择正确的端口号和波特率:

        但很奇怪的是,原本与Keil中Jlink参数相对应的端口号COM4却不能正确传输数据,经过各种原因的排查,反复插拔Jlink仿真器后识别出了正确的串口COM8,不知道问题出在了哪里...

                打开串口,可以看到传输进来的ADC数据:

        然后是蓝牙串口透传程序的烧录。蓝牙串口需要单独写一个API应用文件,开通串口蓝牙服务,其功能是实现主机从机之间的数据交换。串口连接PC端,通过串口调制助手发送数据给主机,然后从机上传主机(TX,通知属性);主机写数据给从机,从机通过串口调制助手显示接收到的数据(RX,写属性),实现双向数据通道的搭建。

        蓝牙串口工程的主要结构包括:

一、建立串口工程(主函数建立 外设初始化 服务初始化)

二、建立串口服务(函数声明和结构体设计 开通主应用服务 添加接收和发送特性 应用层实现)

三、数据通道搭建(蓝牙事件派发函数 处理串口写事件 处理串口接收事件 数据包长度控制)

        烧写代码前,仍先用nRFgo Studio擦除之前写入的程序,如果下载的是BLE程序,例如这里的蓝牙串口透传程序,则需要先下载SoftDevice协议栈,然后下载应用程序。协议栈hex文件的位置如下所示,注意选择对应的协议栈版本:

        然后下载应用程序,这里提供两种方法。第一种和刚才烧写SAADC程序一样,切换到【Program Application】,按照刚才的方法选择对应的应用程序hex文件进行下载即可。另一种方法可以在Keil中下载程序到闪存,注意事先编译一下文件,确定没有报错后再下载:

        然后打开手机,下载nRF Connect,点击【Scanner】,选择自己定义的串口名,这里选择【Nordic_UART】进行连接,在【CLIENT】栏中选择【Nordic UART Service】,在RX特性中可以写入信息,TX特性中可以接受PC端发送的信息。

        为了测试效果,在PC端打开串口助手,向手机端发送“hello”,然后通过手机端发送“你好”,发现二者可以实现信息互通:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Keil5中使用NRF52832进行开发,需要进行以下步骤: 1. 下载并安装Nordic Semiconductor公司提供的nRF5 SDK软件包,选择合适的版本,例如nRF5 SDK v15.3.0。 2. 打开Keil5软件,选择“File”菜单下的“New”。 3. 在弹出的“Create New Project”对话框中,选择“ARM”作为平台,选择你的芯片型号NRF52832,并设定存储工程的位置和工程名,然后点击“OK”按钮。 4. 在工程管理器中,右键点击“Target 1”并选择“Options for Target 'Target 1'”。 5. 在弹出的选项对话框中,选择“Target”选项卡,然后选择你的芯片型号,并设置正确的Flash地址和大小。 6. 点击“C/C++”选项卡,选择“Preprocessor”选项卡,然后添加NRF52832的宏定义,例如“NRF52832_XXAA”。 7. 在“C/C++”选项卡中,选择“Include Paths”选项卡,添加NRF5 SDK的头文件路径。 8. 在“C/C++”选项卡中,选择“Misc Controls”选项卡,添加编译选项“--cpu=Cortex-M4F”。 9. 点击“Debug”选项卡,选择你使用的仿真器,并设置好对应的参数,如端口号、波特率等。 10. 点击“OK”按钮保存设置,返回主界面。 11. 在工程管理器中,右键点击“Source Group 1”并选择“Add Existing Files to Group 'Source Group 1'”。 12. 在弹出的文件选择对话框中,选择你需要添加的源文件或者NRF5 SDK中的示例代码文件。 13. 在Keil5软件中,选择“Flash”菜单下的“Configure Flash Tools”。 14. 在弹出的“Configure Flash Tools”对话框中,选择你使用的烧录器,并设置好对应的参数,如端口号、波特率等。 15. 点击“OK”按钮保存设置,返回主界面。 16. 在Keil5软件中,选择“Flash”菜单下的“Download”。 17. 在弹出的“Download Options”对话框中,选择你需要烧录的hex文件。 18. 点击“Start”按钮开始烧录烧录完成后会有提示。 以上就是在Keil5中使用NRF52832进行开发的步骤,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值