小熊派-GPIO/ADC
小熊派-GPIO/ADC接口名功能描述GpioInit初始化GPIOGpioDeinit取消初始化GPIOGpioSetDir设置GPIO引脚方向GpioGetDir获取GPIO引脚方向GpioSetOutputVal设置GPIO引脚输出电平值GpioGetOutputVal获取GPIO引脚输出电平值GPIOwifiiot_gpio_ex.hAPI
·
小熊派-GPIO
GPIO
GPIO相关接口
GPIO wifiiot_gpio.h API
接口名 | 功能描述 |
---|---|
GpioInit | 初始化GPIO |
GpioDeinit | 取消初始化GPIO |
GpioSetDir | 设置GPIO引脚方向 |
GpioGetDir | 获取GPIO引脚方向 |
GpioSetOutputVal | 设置GPIO引脚输出电平值 |
GpioGetOutputVal | 获取GPIO引脚输出电平值 |
GPIO wifiiot_gpio_ex.h API
接口名 | 功能描述 |
---|---|
IoSetPull | 设置GPIO引脚上拉 |
oGetPull | 获取GPIO引脚上拉 |
IoSetFunc | 设置GPIO引脚功能 |
IoGetFunc | 获取GPIO引脚功能 |
IOSetDriverStrength | 设置GPIO驱动能力 |
IOGetDriverStrength | 获取GPIO驱动能力 |
实验
利用GPIO使LED闪烁
主要代码
static void LedTask(void)
{
//初始化GPIO
GpioInit();
//设置GPIO_2的复用功能为普通GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO);
//设置GPIO_2为输出模式
GpioSetDir(WIFI_IOT_GPIO_IDX_2, WIFI_IOT_GPIO_DIR_OUT);
while (1)
{
//设置GPIO_2输出高电平点亮LED灯
GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 1);
//延时1s
usleep(1000000);
//设置GPIO_2输出低电平熄灭LED灯
GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 0);
//延时1s
usleep(1000000);
}
}
小熊派-GPIO点亮LED
扩展:闪烁LED灯并实时打印GPIO状态
主要代码
static void LedTask(void)
{
//初始化GPIO
GpioInit();
//设置GPIO_2的复用功能为普通GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO);
//设置GPIO_2为输出模式
GpioSetDir(WIFI_IOT_GPIO_IDX_2, WIFI_IOT_GPIO_DIR_OUT);
WifiIotGpioDir val = {0};
GpioGetDir(WIFI_IOT_GPIO_IDX_2,&val);
printf("GPIO_2 Dir is %d\r\n",val);
WifiIotGpioValue OutputVal = {0};
while (1)
{
//设置GPIO_2输出高电平点亮LED灯
GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 1);
GpioGetOutputVal(WIFI_IOT_GPIO_IDX_2,&OutputVal);
printf("GPIO_2 OutputVal is %d\r\n",OutputVal);
//延时1s
usleep(1000000);
//设置GPIO_2输出低电平熄灭LED灯
GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 0);
GpioGetOutputVal(WIFI_IOT_GPIO_IDX_2,&OutputVal);
printf("GPIO_2 OutputVal is %d\r\n",OutputVal);
//延时1s
usleep(1000000);
}
}
ADC采样
ADC相关接口
ADC wifiiot_adc.h
接口名 | 功能描述 |
---|---|
AdcRead | 根据输入参数从指定的ADC通道读取一段采样数据 |
函数样式
AdcRead (WifiIotAdcChannelIndex channel, unsigned short * data, WifiIotAdcEquModelSel equModel, WifiIotAdcCurBais curBais, unsigned short rstCnt )
'''
共五个参数下面是具体说明
'''
参数 | 说明 |
---|---|
channel | ADC通道 |
data | 指示用于存放读取数据的地址的指针 |
equModel | 表示平均算法的次数 |
curBais | 表示模拟功率控制模式 |
rstCnt | 指示从重置到转换开始的时间计数 |
实验
ADC读取GPIO电压值
关键功能(获取电压值函数)代码
/***** 获取电压值函数 *****/
static float GetVoltage(void)
{
unsigned int ret;
unsigned short data;
ret = AdcRead(WIFI_IOT_ADC_CHANNEL_5, &data, WIFI_IOT_ADC_EQU_MODEL_8, WIFI_IOT_ADC_CUR_BAIS_DEFAULT, 0xff);
// 判断是否读取成功
if (ret != WIFI_IOT_SUCCESS)
{
printf("ADC Read Fail\n");
}
// 计算电压值
return (float)data * 1.8 * 4 / 4096.0;
}
小熊派-ADC采样
更多推荐
已为社区贡献1条内容
所有评论(0)