对压力信号进行ad转换 实时比较两个数的差 大于某数进行Lora发送
int main(void)
{
float temp;
Stm32_Clock_Init(9); //ϵͳʱÖÓÉèÖÃ
delay_init(72); //ÑÓʱ³õʼ»¯
uart_init(72,115200);
LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
LCD_Init();
//LCD_ShowxNum(1 ,130,56,4,16,0);//ÏÔʾADCµÄÖµ
LoRa_Init( );
LoRa_CFG.addr=LORA_ADDR;
LoRa_CFG.bps=LORA_TTLBPS_115200 ;
LoRa_CFG.chn=LORA_CHN ;
LoRa_CFG.mode= LORA_MODE_GEN;
LoRa_CFG.mode_sta= LORA_STA_Tran;
LoRa_CFG.parity=LORA_TTLPAR_8N1;
LoRa_CFG.power=LORA_PW_20Bbm;
LoRa_CFG.wlrate= LORA_RATE_19K2;
LoRa_CFG.wltime=LORA_WLTIME_1S;
LoRa_Set( );
ADC_SoftwareStartConvCmd(ADC1, DISABLE);
Adc_Init();
adcx=Get_Adc_Average(ADC_CH1,10);
LCD_ShowxNum(1,130,56,4,16,0);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
temp=(float)adcx*(3.3/4096);
adcx=temp;
int k;
int p;
k=5789;
}
void ADC1_2_IRQHandler(void)
{
if(ADC_GetITStatus(ADC1,ADC_IT_EOC))
{
ad[0]=Get_Adc(1);
//LCD_ShowxNum(156,140,ad[0],4,16,0);
delay_ms(1000);
temp[0]=(float)ad[0]*(3.3/4096);
//ad[1]=Get_Adc_Average(1,10);
LCD_ShowxNum(156,130,1000,4,16,0);
u2_printf("%f
",temp[0]);
ADC_ClearITPendingBit(ADC1, ADC_IT_EOC);
}
}
那个adc设置单次转换 也是一直中断发送 也不会执行后面的那个 LCD_ShowxNum(1,130,56,4,16,0);
我本来打算 adc中断里面获取数据 然后主函数 比较 现在我感觉他执行不到 Adc_Init(); 后面的·了 懵了 大神指点 要中期检查了 wan
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我们交流一下 可以有偿指点
一周热门 更多>