单片机/MCU论坛
直播中

jf_46522458

4年用户 9经验值
擅长:电源/新能源 EMC/EMI设计 嵌入式技术
私信 关注

基于瑞萨FPB-RA4E2智能床头灯项目——3ADC采样

效果演示:
image.png

添加ADC函数
image.png

bsp_adc.c

#include"bsp_adc.h"



//ADC转换完成标志位

volatile bool scan_complete_flag = false;



voidadc_callback(adc_callback_args_t*p_args)

{

    FSP_PARAMETER_NOT_USED(p_args);

    scan_complete_flag = true;

}



voidADC_Init(void)

{

fsp_err_terr;

err=R_ADC_Open(&g_adc0_ctrl,&g_adc0_cfg);

err=R_ADC_ScanCfg(&g_adc0_ctrl,&g_adc0_channel_cfg);

    assert(FSP_SUCCESS==err);

}



/* 进行ADC采集,读取ADC数据并转换结果 */

doubleRead_ADC_Voltage_Value(void)

{

uint16_tadc_data;

doublea0;



(void)R_ADC_ScanStart(&g_adc0_ctrl);

while(!scan_complete_flag)//等待转换完成标志

{

;

}

    scan_complete_flag = false;//重新清除标志位



/* 读取通道0数据 */

R_ADC_Read(&g_adc0_ctrl,ADC_CHANNEL_0,&adc_data);

/* ADC原始数据转换为电压值(ADC参考电压为3.3V) */

a0=(double)(adc_data*3.3/4095);



returna0;

}

bsp_adc.h文件

#ifndef __BSP_ADC_H

#define__BSP_ADC_H



#include"hal_data.h"



voidADC_Init(void);

doubleRead_ADC_Voltage_Value(void);



#endif

添加ADC
image.png

配置ADC
image.png

配置ADC通道
image.png

配置时钟
image.png

生成配置文件
image.png

添加print函数映像
image.png

printf_redirect.c文件

#include"hal_data.h"

#include"stdio.h"

#include<sys/stat.h>

#include<errno.h>

#undef errno

externinterrno;



int_write(intfile,char*ptr,intlen);

int_close(intfile);

int_fstat(intfile,structstat*st);

int_isatty(intfile);

int_read(intfile,char*ptr,intlen);

int_lseek(intfile,intptr,intdir);



#defineDEBUG_SERIAL_TIMEOUT 2000/portTICK_PERIOD_MS



externuint8_t uart_send_complete_flag;



int_write(intfile,char*ptr,intlen)

{

fsp_err_terr=FSP_SUCCESS;

    FSP_PARAMETER_NOT_USED(file);



static bool uart_open= false;



if(false ==uart_open)

{

err=R_SCI_UART_Open(&g_uart9_ctrl,&g_uart9_cfg);

}



if(FSP_SUCCESS==err)

{

err=R_SCI_UART_Write(&g_uart9_ctrl,(uint8_t*)ptr,(uint32_t)len);

}



if(FSP_SUCCESS!=err)

{

len=-1;

}



while(uart_send_complete_flag ==0)

{

R_BSP_SoftwareDelay(10,BSP_DELAY_UNITS_MILLISECONDS);

}

    uart_send_complete_flag =0;



returnlen;

}



int_close(intfile)

{

  FSP_PARAMETER_NOT_USED(file);

return-1;

}

int_fstat(intfile,structstat*st)

{

    FSP_PARAMETER_NOT_USED(file);

st->st_mode= S_IFCHR;

return0;

}



int_isatty(intfile)

{

    FSP_PARAMETER_NOT_USED(file);

return1;

}



int_lseek(intfile,intptr,intdir)

{

    FSP_PARAMETER_NOT_USED(file);

    FSP_PARAMETER_NOT_USED(ptr);

    FSP_PARAMETER_NOT_USED(dir);

return0;

}



int_read(intfile,char*ptr,intlen)

{

    FSP_PARAMETER_NOT_USED(file);

    FSP_PARAMETER_NOT_USED(ptr);

    FSP_PARAMETER_NOT_USED(len);

return0;

}

程序代码:
*附件:ws2812.zip

项目效果

更多回帖

发帖
×
20
完善资料,
赚取积分