亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: stm32f103寫的pm2.5通過(guò)nrf24l01射頻發(fā)送數(shù)據(jù)源程序 [打印本頁(yè)]

作者: liu51hei    時(shí)間: 2019-7-21 15:41
標(biāo)題: stm32f103寫的pm2.5通過(guò)nrf24l01射頻發(fā)送數(shù)據(jù)源程序
pm2.5傳感器采集到數(shù)據(jù)后再通過(guò)nrf24l01射頻模塊發(fā)送出去,使用時(shí)射頻模塊里的地址和通道要與接收程序一樣

單片機(jī)源程序如下:
  1. #include "GP2Y.h"
  2. #include "stm32f10x.h"
  3. #include "delay.h"
  4. #include "usart.h"
  5. #include "adc.h"
  6. #include "led.h"
  7.         u32 AD_PM;
  8. void GP2Yinit(void)
  9. {
  10. //定義變量
  11.     ADC_InitTypeDef A_InitStructure;
  12.     GPIO_InitTypeDef G_InitStructure;        //PA0
  13.         
  14.     GPIO_InitTypeDef Gpio_InitStructure;//PB1
  15.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB|RCC_APB2Periph_ADC1 , ENABLE );   //使能ADC2通道時(shí)鐘
  16.      
  17.     RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //設(shè)置ADC分頻因子6 72M/6=12,ADC最大時(shí)間不能超過(guò)14M

  18.     //PA0 作為模擬通道輸入引腳                        
  19.     G_InitStructure.GPIO_Pin = GPIO_Pin_6;
  20.     G_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模擬輸入引腳
  21.     GPIO_Init(GPIOA, &G_InitStructure);
  22.    
  23.     ADC_DeInit(ADC1);  //復(fù)位ADC1,將外設(shè) ADC1 的全部寄存器重設(shè)為缺省值
  24.    
  25.     A_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在獨(dú)立模式
  26.     A_InitStructure.ADC_ScanConvMode = DISABLE; //模數(shù)轉(zhuǎn)換工作在單通道模式
  27.     A_InitStructure.ADC_ContinuousConvMode = ENABLE; //模數(shù)轉(zhuǎn)換工作在單次轉(zhuǎn)換模式
  28.     A_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動(dòng)
  29.     A_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC數(shù)據(jù)右對(duì)齊
  30.     A_InitStructure.ADC_NbrOfChannel = 1; //順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目
  31.     ADC_Init(ADC1, &A_InitStructure); //根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設(shè)ADCx的寄存器  
  32.    
  33.    
  34.     ADC_Cmd(ADC1, ENABLE);         //使能指定的ADC1
  35.                
  36.     ADC_ResetCalibration(ADC1); //使能復(fù)位校準(zhǔn)
  37.     while(ADC_GetResetCalibrationStatus(ADC1)); //等待復(fù)位校準(zhǔn)結(jié)束
  38.     ADC_StartCalibration(ADC1);  //開(kāi)啟AD校準(zhǔn)
  39.     while(ADC_GetCalibrationStatus(ADC1));  //等待校準(zhǔn)結(jié)束
  40.                
  41.     Gpio_InitStructure.GPIO_Pin = GPIO_Pin_1;                        
  42.     Gpio_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出  
  43.     Gpio_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           
  44.     GPIO_Init(GPIOB, &Gpio_InitStructure);
  45.     GP2Y_High;
  46. }

  47. //獲得ADC值
  48. //ch:通道值 0~3
  49. u16 Get_Adc(u8 ch)   
  50. {
  51.           //設(shè)置指定ADC的規(guī)則組通道,一個(gè)序列,采樣時(shí)間
  52.         ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );        //ADC1,ADC通道,采樣時(shí)間為239.5周期                                      
  53.   
  54.         ADC_SoftwareStartConvCmd(ADC1, ENABLE);                //使能指定的ADC1的軟件轉(zhuǎn)換啟動(dòng)功能        
  55.          
  56.         while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待轉(zhuǎn)換結(jié)束

  57.         return ADC_GetConversionValue(ADC1);        //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果
  58. }

  59. u16 Get_Adc_Average(u8 ch,u8 times)
  60. {
  61.         u32 temp_val=0;
  62.         u8 t;
  63.         for(t=0;t<times;t++)
  64.         {
  65.                 temp_val+=Get_Adc(ch);
  66.                 delay_ms(5);
  67.         }
  68.         return temp_val/times;
  69. }         


  70. float pma,values;
  71. void GetGP2Y(void)
  72. {

  73.         GP2Y_Low;
  74.         delay_us(280);
  75.         AD_PM = Get_Adc(ADC_Channel_6);        //PA0
  76.         delay_us(40);
  77.         GP2Y_High;
  78.         delay_us(9680);
  79.         values=AD_PM*3.3/4096;
  80.         pma = 0.17*AD_PM-0.1; //電壓-灰塵轉(zhuǎn)換
  81. }
復(fù)制代碼
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "led.h"
  6. #include "stdio.h"
  7. #include "spmk.h"
  8. #include "spi.h"
  9. #include "gp2y.h"

  10. extern float values;
  11. extern float pma;
  12. u8 txbuf[20];
  13. int main(void)
  14. {
  15.         delay_init();                     //延時(shí)函數(shù)初始化         
  16.         uart_init(9600);                 //串口初始化為9600
  17.         LED_Init();                                  //初始化與LED連接的硬件接口
  18.   GP2Yinit();         
  19.         NRF24L01_Init( );
  20.         while(NRF24L01_Check( )!=0)
  21.         {
  22.                 led=!led;
  23.                 delay_ms(200);        
  24.         }
  25.         led=0;
  26.         NRF24L01_TX_Mode( );
  27.         while(1)
  28.         {
  29.                 GetGP2Y();
  30.                 sprintf(txbuf,"\"PM2.5\":%0.2f",pma);
  31.                 if(NRF24L01_TxPacket(txbuf)==TX_OK)
  32.                 {
  33.                         led=!led;
  34.                         printf("/r/nad:%0.2f\n",pma);
  35.                 }
  36.                 delay_ms(500);        
  37.         }                                                                                            
  38. }        
復(fù)制代碼


所有資料51hei提供下載:
PM2.5.7z (214.54 KB, 下載次數(shù): 69)



作者: chen132    時(shí)間: 2019-12-11 18:52
這個(gè)接受端怎么查看這個(gè)數(shù)據(jù)


作者: liu51hei    時(shí)間: 2020-1-16 14:05
chen132 發(fā)表于 2019-12-11 18:52
這個(gè)接受端怎么查看這個(gè)數(shù)據(jù)

接收端把射頻的模式改成接受的就可以了啊
作者: LS4    時(shí)間: 2020-3-21 10:37
PM2.5模塊怎么接

作者: liu51hei    時(shí)間: 2020-11-19 21:46
LS4 發(fā)表于 2020-3-21 10:37
PM2.5模塊怎么接

你可以查找網(wǎng)上的教程,講的都很細(xì)




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1