打印
[活动专区]

[AT32WB415] AT-START-WB415评测-demo工程分析与修改 1 MCU demo

[复制链接]
771|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 weiwei4dk 于 2022-9-16 00:24 编辑

    上次对蓝牙DEMO工程的烧录与通信作了测试,这回来分析下蓝牙工程的程序吧!    首先来看下MCU端的工程,这个相较于BLE端的工程来说,简单一些。
    主程序main()里除了初始化函数外,主循环 主要完成的工作如下图
   
          透传模式与AT模块的切换 由用户按键进行选择切换,经由串口向蓝牙核心发送AT指令进行模式配置,然后点亮相应的指令灯进行标识
         
          上图可以看到MCU端发送到BLE端的模式切换指令格式(指令格式在 at_cmd.h 里定义)
          另外也看到了上次测试0xC101 服务里读取端口状态与写端口状态的指令
         
          在at_cmd.h里面有at指令解析用的结构体
         
         结构体定义了指令字符串 与 对应的ID
         同时在main.c中定义了一个 at指令结构体数据(如下图),用于at指令数据的解析用途
         
          在 at_cmd_handler 函数里,对指令数据的解析方法如下,使用了memcmp 很巧秒的对接收到的数据进行对比,解析得到指令对应的ID号
         
         AT模式的主要程序要点如上面所叙,
         接着看下MCU端 串口接收数据的处理,UART3 负责MCU与蓝牙核心进行串口通信 ,uart2则负责接收外部需要透传的数据 及 将蓝牙核心发过来的透传数据发出去
        

        UART3的数据接收和处理则需要依据当前模式进行判断
        
        上图中AT模块接收的数据 recv_data 就是 main.c 里 at_cmd_handler 处理函数里 用到的数据啦
        

       透传数据的接收和发送处理,则在tp_mode.c 中处理
      
       上图 p_mode_rx_handler 函数负责将 蓝牙核心发给MCU的数据 转发至 UART2(串口终端)

      
       上图 tp_mode_tx_handler 刚处理 从UART2接收到的数据 转发到 蓝牙核心的 工作
       至此,MCU核心的数据处理流程已经清晰起来,后续需要修改功能也有了大致的方向了。后续将继续分析 蓝牙核心的工程代码,蓝牙代码较繁杂,所以下一篇可能会很啰嗦。

        


         
   


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

1419

帖子

2

粉丝