当前位置: 代码迷 >> 综合 >> (2/9) commInit();【NRF51822】(21日上午学习 队列 下午和晚上看完初始化函数)
  详细解决方案

(2/9) commInit();【NRF51822】(21日上午学习 队列 下午和晚上看完初始化函数)

热度:57   发布时间:2024-03-06 17:52:17.0

 

文章目录

 

前言

一、commInit();

二、队列

总结



前言

  之前(1/9)写成遥控器的led灯初始化了。

本文进行(2/9)NRF51822 通讯模块的初始化学习。

一、commInit();

void commInit(void)
{
    if (isInit) return;
    radiolinkInit();    /*无线通信初始化*/
    usblinkInit();        /*USB通信初始化*/
    isInit = true;
}

void radiolinkInit(void)
{
    if (isInit) return;

//到这里疑惑了 为什么无线通讯扯上串口通讯了

//看了硬件资源才明白 NRF51822通过串口U2连接到MCU上 作机载通讯及电源检测设备

    uartslkInit(); //这里不用进去看懂 就是串口初始化 明白是哪个串口 波特率 以及 GPIO即可

//主要是要看懂这个

//第一个参数是指队列能够包含的最大项目数 第二个是每个项目的字节数

//这里是 包含30个项目  每个项目atkp_t 是32个字节 ID + LENTH +DATA[30]

//暂未跟进函数体看如何判断是否创建成功 这里猜想就是分配一个空间用作串口队列通信 如果成功分配就是成功

//发现usb里面同样使用这个函数  可能这是队列相关 并不是串口初始化专用  白天学习一下
    txQueue = xQueueCreate(RADIOLINK_TX_QUEUE_SIZE, sizeof(atkp_t)); //返回是否创建成功
    ASSERT(txQueue);                                                                                                                                                                       
    isInit = true;              
}

 

void usblinkInit()
{
    if(isInit) return;
    
    usbd_cdc_vcp_Init();
    /*同 串口初始化 格式*/
    txQueue = xQueueCreate(USBLINK_TX_QUEUE_SIZE, sizeof(atkp_t));
    ASSERT(txQueue);
    isInit = true;
}

                                                                                                                                                                    1:55 宿舍

                                                                                                                                                                    October 21, 2020

二、队列(F4开发手册第13章节)


总结