FreeRTOS-Plus-IO 快速示例
此页面包含基本的源代码示例,以演示
FreeRTOS-Plus-IO 概念。 更多详细示例请参阅本网站的
API 引用和
传输模式部分。
板级支持包提供了综合应用示例,
精选演示页面上列出了一些知名项目。
示例 1
演示了如何从已经打开并配置的外设中读取字节。 该示例适用于所有
数据传输模式。
#include "FreeRTOS_IO.h"
#define BUFFER_SIZE 200
const int8_t cBuffer[ 200 ] = { 0 };
void vReadExample( Peripheral_Descriptor_t xOpenPort )
{
size_t xBytesTransferred;
xBytesTransferred = FreeRTOS_read( xOpenPort, cBuffer, BUFFER_SIZE );
}
Example 1: Reading bytes from a descriptor that has already been opened
and configured.
示例 2 演示了
如何向已经打开并配置为使用
中断驱动的零拷贝写
传输模式的外设写入字节。
#include "FreeRTOS_IO.h"
#define BUFFER_SIZE 200
const int8_t cBuffer[ 200 ] = { 0 };
void vWriteExample( Peripheral_Descriptor_t xOpenPort )
{
size_t xBytesTransferred;
BaseType_t xReturn;
xReturn = FreeRTOS_ioctl( xOpenPort, iocltOBTAIN_WRITE_MUTEX, ( void * ) ( 200 / portTICK_PERIOD_MS ) );
if( xReturn != pdFAIL )
{
xBytesTransferred = FreeRTOS_write( xOpenPort, cBuffer, BUFFER_SIZE );
}
}
Example 2: Writing bytes to a descriptor that has already been opened and
configured to use the zero copy write transfer mode.
示例 3 演示了如何打开和配置描述符。
首先,打开一个 I2C 端口。 然后,假设打开成功,
我们需要将端口配置用于零拷贝写传输和循环缓冲区
读传输。 读取超时和写入超时均设置为
200 毫秒。
#include "FreeRTOS_IO.h"
Peripheral_Descriptor_t xOpenAndConfigureI2CPort( void )
{
Peripheral_Descriptor_t xI2CPort;
xI2CPort = FreeRTOS_open( "/I2C0/", NULL );
configASSERT( xI2CPort );
FreeRTOS_ioctl( xI2CPort, iocltUSE_ZERO_COPY_TX, NULL );
FreeRTOS_ioctl( xI2CPort, iocltUSE_CIRCULAR_BUFFER_RX, ( void * ) 100 );
FreeRTOS_ioctl( xI2CPort, iocltSET_RX_TIMEOUT, ( void * ) ( 200 / portTICK_PERIOD_MS ) );
FreeRTOS_ioctl( xI2CPort, iocltSET_SPEED, ( void * ) 400000 );
FreeRTOS_ioctl( xI2CPort, iocltSET_I2C_SLAVE_ADDRESS, ( void * ) 50 );
return xI2CPort;
}
Example 3: Opening and configuring a descriptor
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.