-
大小: 178KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-07-12
- 語言: 其他
- 標(biāo)簽: GPS,zigbee??
資源簡介
有一些基本的控制電機舵機等的引用
自己加入引用了三個串口分別 控制了GPS IMU ZigBee三個模塊的測量
還在繼續(xù)改

代碼片段和文件信息
#include?“adc_battery.h“
#include?“delay.h“
//初始化ADC
//這里我們僅以規(guī)則通道為例
//我們默認將開啟通道0~3
/*********************************電量查詢表*********************************/
float m_li_v[13]={8.48.168.07.867.747.647.587.547.467.47.367.05.0};
int? m_li_c[13]={1009080706050403020151050};
void??Adc_Init(void)//PA2
{?
ADC_InitTypeDef?ADC_InitStructure;?
GPIO_InitTypeDef?GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA?|RCC_APB2Periph_ADC1 ?ENABLE?); ??//使能ADC1通道時鐘
RCC_ADCCLKConfig(RCC_PCLK2_Div6);???//設(shè)置ADC分頻因子6?72M/6=12ADC最大時間不能超過14M
//PA2?作為模擬通道輸入引腳
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AIN; //模擬輸入引腳
GPIO_Init(GPIOA?&GPIO_InitStructure);
ADC_DeInit(ADC1);??//復(fù)位ADC1將外設(shè)?ADC1?的全部寄存器重設(shè)為缺省值
ADC_InitStructure.ADC_Mode?=?ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在獨立模式
ADC_InitStructure.ADC_ScanConvMode?=?DISABLE; //模數(shù)轉(zhuǎn)換工作在單通道模式
ADC_InitStructure.ADC_ContinuousConvMode?=?DISABLE; //模數(shù)轉(zhuǎn)換工作在單次轉(zhuǎn)換模式
ADC_InitStructure.ADC_ExternalTrigConv?=?ADC_ExternalTrigConv_None; //轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動
ADC_InitStructure.ADC_DataAlign?=?ADC_DataAlign_Right; //ADC數(shù)據(jù)右對齊
ADC_InitStructure.ADC_NbrOfChannel?=?1; //順序進行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目
ADC_Init(ADC1?&ADC_InitStructure); //根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設(shè)ADCx的寄存器???
??
ADC_Cmd(ADC1?ENABLE); //使能指定的ADC1
ADC_ResetCalibration(ADC1); //使能復(fù)位校準(zhǔn)??
?
while(ADC_GetResetCalibrationStatus(ADC1)); //等待復(fù)位校準(zhǔn)結(jié)束
ADC_StartCalibration(ADC1); ?//開啟AD校準(zhǔn)
?
while(ADC_GetCalibrationStatus(ADC1)); ?//等待校準(zhǔn)結(jié)束
?
// ADC_SoftwareStartConvCmd(ADC1?ENABLE); //使能指定的ADC1的軟件轉(zhuǎn)換啟動功能
}
//獲得ADC值
//ch:通道值?0~3
u16?Get_Adc(u8?ch)???
{
?? //設(shè)置指定ADC的規(guī)則組通道,一個序列,采樣時間
ADC_RegularChannelConfig(ADC1?ch?1?ADC_SampleTime_239Cycles5?); //ADC1ADC通道采樣時間為239.5周期 ?? ????
??
ADC_SoftwareStartConvCmd(ADC1?ENABLE); //使能指定的ADC1的軟件轉(zhuǎn)換啟動功能
?
while(!ADC_GetFlagStatus(ADC1?ADC_FLAG_EOC?));//等待轉(zhuǎn)換結(jié)束
return?ADC_GetConversionValue(ADC1); //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果
}
//獲取times次ADC值,并取平均
u16?Get_Adc_Average(u8?chu8?times)
{
u32?temp_val=0;
u8?t=0;
for(t=0;t {
temp_val+=Get_Adc(ch);
delay_ms(5);
}
return?temp_val/times;
}
//獲取電量信息
u8?Get_battery_result(void)
{
int?i=0;
double?voltage=0.0;
double?capacity=0.0;
voltage=(Get_Adc_Average(ADC_Channel_210))*9.9/4096;
if(voltage>m_li_v[0])
{
capacity=100.0;
}
else
{
for(i=0;i<12;i++)
{
if(voltage>m_li_v[i+1])
{
capacity=m_li_c[i+1]+(voltage-m_li_v[i+1])*(m_li_c[i]-m_li_c[i+1])/(m_li_v[i]-m_li_v[i+1]);
break;
}
}
}
capacity+=0.5; //修正方案?四舍五入
return?((u8)capacity);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????195??2017-05-25?12:29??MY_LIB\inc\adc_battery.h
?????文件????????225??2017-05-12?16:10??MY_LIB\inc\control.h
?????文件????????216??2017-05-17?16:44??MY_LIB\inc\encoderfun.h
?????文件????????100??2014-08-05?10:14??MY_LIB\inc\exti.h
?????文件????????165??2017-05-26?16:58??MY_LIB\inc\GPIO_Motor.h
?????文件???????6149??2018-04-02?16:26??MY_LIB\inc\gps.h
?????文件????????968??2018-04-12?15:32??MY_LIB\inc\hc05.h
?????文件??????40483??2018-04-08?16:51??MY_LIB\inc\ioCC2530.h
?????文件??????40321??2018-04-08?15:27??MY_LIB\inc\ioCC2530.h~RF502dd4.TMP
?????文件???????2235??2018-04-16?20:28??MY_LIB\inc\JY901.h
?????文件????????391??2017-05-31?16:10??MY_LIB\inc\PWM_Out.h
?????文件????????857??2014-05-31?17:37??MY_LIB\inc\Step_Motor.h
?????文件??????29607??2018-04-02?16:41??MY_LIB\inc\stm32f10x_dma.h
?????文件????????161??2017-05-25?12:23??MY_LIB\inc\timer.h
?????文件????????756??2018-04-12?16:56??MY_LIB\inc\usart.h
?????文件???????1214??2018-04-02?16:26??MY_LIB\inc\usart2.h
?????文件????????745??2018-04-16?20:42??MY_LIB\inc\usart4.h
?????文件????????246??2014-08-11?13:24??MY_LIB\inc\watch_dog.h
?????文件???????2989??2018-04-19?20:59??MY_LIB\src\adc_battery.c
?????文件???????1919??2018-04-16?20:28??MY_LIB\src\control.c
?????文件???????1489??2018-03-25?20:14??MY_LIB\src\encoderfun.c
?????文件???????1098??2018-04-01?17:04??MY_LIB\src\GPIO_Motor.c
?????文件??????13079??2018-04-17?17:16??MY_LIB\src\gps.c
?????文件???????4176??2018-04-16?20:27??MY_LIB\src\JY901.c
?????文件???????4336??2018-04-19?20:58??MY_LIB\src\PWM_Out.c
?????文件???????4537??2014-05-31?09:33??MY_LIB\src\Step_Motor.c
?????文件???????2857??2018-04-17?21:51??MY_LIB\src\timer.c
?????文件???????7175??2018-04-17?21:14??MY_LIB\src\usart.c
?????文件???????8026??2018-04-02?16:58??MY_LIB\src\usart2.c
?????文件???????3181??2018-04-19?20:58??MY_LIB\src\usart4.c
............此處省略39個文件信息
- 上一篇:軟件開發(fā)計劃書.rar
- 下一篇:新巴巴運動網(wǎng)page包
評論
共有 條評論