稳定的环形队列--经过严格测试(普通+FREERTOS)

1.相比于定长队列,环队队列在省空间方面有很大的优势。 可以缓存变长的数据。

2.如果数据量小,也可以采用取走前面的数据,后面追加的数据向前移动的方式。但是缺点就是所有数据都需要向前移动,而且在移动过程中如果有新数据进来会出错。 而且环形队列就完美解决这个问题。

3.环形队列,不需要移动数据,取走数据以后front+1 就行了。因此不会有出错的风险。

裸机队列:

typedef struct
{
    u16 front;
    u16 rear;
    u16 length;
    u8  data[USART_QUEUE_SIZE];
} type_usart_queue;

用于不同优先级及中断任务中入队:

//====================================================================================================================
//入队
static uint8_t UsartQueuePush(type_usart_queue* queue, uint8_t data)
{

   if ((queue->rear+1)%USART_QUEUE_SIZE == queue->front)
    {
        return USART_QUEUE_FULL;
    }   
    
    queue->data[queue->rear] = data;
    queue->rear = (queue->rear + 1) % USART_QUEUE_SIZE;  

    return USART_QUEUE_OK;
}

//=======================================================================================&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
STM32F4X7是一款高性能的微控制器,支持uC/OS、FreeRTOS、LWIP、SSL和MQTT等多种工具。它通过使用MDK5开发工具,能够提供稳定可靠的开发环境。 W5500是一款硬件模块,是一种以太网控制器,用于实现物联网设备的网络连接。它能够与STM32F4X7微控制器结合使用,实现MQTT协议的通信。在这个例程中,W5500与STM32F4X7通过SPI接口进行通信,使用MQTT协议实现设备之间的数据传输。 在这个例程和说明中,首先需要配置W5500模块的网络参数,包括IP地址、子网掩码、网关和DNS服务器等。然后,通过MQTT协议连接到MQTT服务器。在连接成功后,可以通过MQTT协议发布和订阅主题,进行设备之间的数据交换。 MQTT是一种轻量级的消息队列传输协议,它具有低带宽和低功耗的特点,适用于物联网设备的通信。通过使用MQTT协议,设备可以以发布订阅的方式进行消息传递,实现设备之间的数据交互。 这个例程和说明提供了详细的配置和使用指南,帮助开发者快速上手使用W5500和MQTT协议。同时,MDK5开发工具提供了丰富的调试和分析功能,帮助开发者进行代码的验证和调试,保证系统稳定可靠。 总而言之,STM32F4X7与uC/OS、FreeRTOS、LWIP、SSL和MQTT等工具的结合使用,以及W5500和MQTT协议的应用,能够提供稳定可靠的物联网解决方案。通过使用MDK5开发工具,开发者可以快速开发和验证自己的物联网应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值