ADC 接入板正确检测
This commit is contained in:
parent
2b0227798c
commit
6a594d6cdc
6
.config
6
.config
@ -201,7 +201,7 @@ CONFIG_RT_USING_I2C_BITOPS=y
|
||||
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
|
||||
# CONFIG_RT_USING_SOFT_I2C is not set
|
||||
# CONFIG_RT_USING_PHY is not set
|
||||
# CONFIG_RT_USING_ADC is not set
|
||||
CONFIG_RT_USING_ADC=y
|
||||
# CONFIG_RT_USING_DAC is not set
|
||||
# CONFIG_RT_USING_NULL is not set
|
||||
# CONFIG_RT_USING_ZERO is not set
|
||||
@ -1691,7 +1691,9 @@ CONFIG_BSP_USING_SPI=y
|
||||
CONFIG_BSP_USING_SPI2=y
|
||||
# CONFIG_BSP_SPI2_TX_USING_DMA is not set
|
||||
# CONFIG_BSP_SPI2_RX_USING_DMA is not set
|
||||
# CONFIG_BSP_USING_ADC is not set
|
||||
CONFIG_BSP_USING_ADC=y
|
||||
CONFIG_BSP_USING_ADC1=y
|
||||
# CONFIG_BSP_USING_ADC3 is not set
|
||||
CONFIG_BSP_USING_I2C=y
|
||||
# CONFIG_BSP_USING_I2C1 is not set
|
||||
CONFIG_BSP_USING_I2C2=y
|
||||
|
@ -1,4 +1,10 @@
|
||||
#include "indicator_led.h"
|
||||
#include "rtdevice.h"
|
||||
|
||||
#define ADC_DEV_NAME "adc1" /* ADC 设备名称 */
|
||||
#define ADC_DEV_CHANNEL 5 /* ADC 通道 */
|
||||
#define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
|
||||
#define CONVERT_BITS (1 << 12) /* 转换位数为12位 */
|
||||
|
||||
#define LED_NUM 24 // LED灯珠个数
|
||||
|
||||
@ -154,13 +160,57 @@ void led_breath_entry(void *parameter)
|
||||
}
|
||||
}
|
||||
|
||||
// MSH_CMD_EXPORT_ALIAS(led_breath_thread,BREATH, "BREATH LIGHT");
|
||||
#define BORAD_NOT_CORRECT 25
|
||||
|
||||
/**
|
||||
* @brief 检测一下当前接入的是否是正确的板
|
||||
*/
|
||||
static int borad_check(void)
|
||||
{
|
||||
rt_adc_device_t adc_dev;
|
||||
rt_uint32_t value, vol;
|
||||
rt_err_t ret = RT_EOK;
|
||||
|
||||
/* 查找设备 */
|
||||
adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
|
||||
if (adc_dev == RT_NULL)
|
||||
{
|
||||
rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
|
||||
return RT_ERROR;
|
||||
}
|
||||
|
||||
/* 使能设备 */
|
||||
ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
|
||||
|
||||
/* 读取采样值 */
|
||||
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
|
||||
|
||||
/* 转换为对应电压值 */
|
||||
vol = value * REFER_VOLTAGE / CONVERT_BITS;
|
||||
if(vol>=0.25)
|
||||
{
|
||||
rt_kprintf("NOT correct borad!\n");
|
||||
rt_kprintf("the value is :%d \n", value);
|
||||
rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
|
||||
return BORAD_NOT_CORRECT;
|
||||
}
|
||||
/* 关闭通道 */
|
||||
ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
|
||||
|
||||
return ret;
|
||||
}
|
||||
/* 导出到 msh 命令列表中 */
|
||||
MSH_CMD_EXPORT(borad_check, adc voltage convert sample);
|
||||
|
||||
/**
|
||||
* @brief LED的初始化
|
||||
*/
|
||||
int led_init(void)
|
||||
{
|
||||
if (borad_check()==BORAD_NOT_CORRECT)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
led_blink_thread = rt_thread_create("led blink control thread", led_blink_entry, RT_NULL, 1024, 20, 20);
|
||||
if (led_blink_thread == RT_NULL)
|
||||
{
|
||||
|
@ -619,8 +619,6 @@ void my_project(void)
|
||||
|
||||
serial_init();
|
||||
|
||||
led_blink_init();
|
||||
|
||||
led_breath_init();
|
||||
led_init();
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(my_project, myproject, run my project);
|
@ -133,6 +133,7 @@
|
||||
#define RT_SERIAL_RB_BUFSZ 64
|
||||
#define RT_USING_I2C
|
||||
#define RT_USING_I2C_BITOPS
|
||||
#define RT_USING_ADC
|
||||
#define RT_USING_PWM
|
||||
#define RT_USING_RTC
|
||||
#define RT_USING_SOFT_RTC
|
||||
@ -655,6 +656,8 @@
|
||||
#define BSP_USING_ON_CHIP_FLASH
|
||||
#define BSP_USING_SPI
|
||||
#define BSP_USING_SPI2
|
||||
#define BSP_USING_ADC
|
||||
#define BSP_USING_ADC1
|
||||
#define BSP_USING_I2C
|
||||
#define BSP_USING_I2C2
|
||||
#define BSP_I2C2_SCL_PIN 81
|
||||
|
Loading…
x
Reference in New Issue
Block a user