久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4136|回復: 0
打印 上一主題 下一主題
收起左側

STM32雙通道方波頻率檢測與倍頻輸出的設計源碼 藍橋杯CT117E考試板

[復制鏈接]
跳轉到指定樓層
樓主
嵌入式第五屆省賽-雙通道方波頻率檢測與倍頻輸出HGS20180328
“藍橋杯” 第六屆全國軟件和信息技術專業人才大賽
嵌入式設計與開發項目模擬試題
功能簡述
  “雙通道方波頻率檢測與倍頻輸出”設計要求測量輸入方波信號的頻率,并根據設定的
倍頻數,輸出經過倍頻的方波信號。倍頻數可以通過按鍵設定,也可以通過串行口設定;LCD
顯示2個通道的頻率測量值和倍頻數。系統框圖如圖 1所示:

CT117E考試板電路原理圖、LCD 驅動程序、及本題涉及到的芯片資料可參考計算機上的電子文檔。電路原理圖、程序流程圖及相關工程文件請以考生準考證命名,并保存在指定文件夾中(文件夾名為考生準考證號,文件夾位于Windows桌面上) 。


單片機源程序如下:
  1. //上電為本地模式  
  2. //無PWM輸入顯示0Hz  
  3. //TIM2_PWMin和串口發有沖突  但題目未用TX,不初始化TX即可(因為PWM為輸入模式),這樣無論是否在串口模式都能保證PWM輸出
  4. //TIM3_PWMout使用  GPIO_Mode_Out_PP
  5. #include "stm32f10x.h"
  6. #include <stdio.h>
  7. #include "user.h"
  8. #include "lcd.h"
  9. #include "i2c.h"

  10. u32 TimingDelay = 0;
  11. u8  USART_Test=0;
  12. u8 string[20];
  13. u8 PA6_Mul=0,PA7_Mul=0;
  14. u8 PA6_Out=0,PA7_Out=0;

  15. __IO uint16_t ICReadValue1_now = 0,ICReadValue1_last = 0, ICReadValue2_now = 0,ICReadValue2_last = 0;
  16. __IO uint32_t Freq1_now = 0,Freq1_last = 0,Freq2_now = 0,Freq2_last = 0;
  17. __IO uint8_t  Freq1_Display=0,Freq2_Display=0;

  18. uint16_t CCR1_Val = 500;   //  72000 000/(71+2)=1/1000 000
  19. uint16_t CCR2_Val = 1000;  //  T=CCR*2*(1/1000 000) , f=1/T  ==>CCR=5000000/f

  20. u8 count=0;
  21. u8 RX_buf[20];
  22. u8 Data_right=0;
  23. u8 RXcomplitFlag=0;

  24. u8 Local_mode=1;
  25. u8 Set_channel=1;

  26. u16 LED=0XFFFF;

  27. void Delay_Ms(u32 nTime);
  28. void LED_Config(void);
  29. void LCD_Config(void);
  30. void KEY_Config(void);
  31. void IIC_Config(void);
  32. void USART_Config(void);
  33. void TIM2_PWMin_Config(void);
  34. void TIM3_PWMout_Config(void);
  35. void ALL_Init(void);
  36. void KEY_Scan(void);
  37. u8 IIC_Read(u8 add);
  38. void IIC_Write(u8 add,u8 dat);
  39. void NVIC_Configuration(void);
  40. void USART_SendStr(u8 *str);
  41. void LED_Run(void);

  42. int main(void)
  43. {
  44.         SysTick_Config(SystemCoreClock/1000);
  45.         LED_Config();
  46.   LCD_Config();
  47.   KEY_Config();
  48.   IIC_Config();
  49.   USART_Config();
  50.   TIM2_PWMin_Config();
  51.   TIM3_PWMout_Config();
  52.   ALL_Init();
  53.         
  54.         Delay_Ms(5);IIC_Write(0x01,2);
  55.         Delay_Ms(5);IIC_Write(0x02,2);
  56.         Delay_Ms(5);PA6_Mul=IIC_Read(0x01);
  57.         Delay_Ms(5);PA7_Mul=IIC_Read(0x02);
  58.         sprintf((char*)string," N(1):%d            ",PA6_Mul);
  59.         LCD_DisplayStringLine(Line2,string);
  60.         sprintf((char*)string," N(2):%d            ",PA7_Mul);
  61.         LCD_DisplayStringLine(Line6,string);
  62.   LED_Run();
  63.         
  64.   while (1)
  65.   {
  66.                 KEY_Scan();
  67.                 LED_Run();
  68.                 if(Freq1_Display==1)
  69.                 {
  70.                         Freq1_Display=0;
  71.                         sprintf((char*)string," Channel(1):%dHz  ",Freq1_now);
  72.                         LCD_DisplayStringLine(Line1,string);
  73.                         if((Freq1_now>=50)&&(Freq1_now<=50000))
  74.                         {
  75.                                 CCR1_Val = 500000/Freq1_now/PA6_Mul;
  76.                                 PA6_Out=1;LED&=~LED1;
  77.                         }
  78.                         else {PA6_Out=0;LED|=LED1;LCD_DisplayStringLine(Line1,(unsigned char *)" Channel(1):0Hz        ");}
  79.                 }
  80.                 else {PA6_Out=0;LED|=LED1;LCD_DisplayStringLine(Line1,(unsigned char *)" Channel(1):0Hz          ");}
  81.                
  82.                 if(Freq2_Display==1)
  83.                 {
  84.                         Freq2_Display=0;
  85.                         sprintf((char*)string," Channel(1):%dHz  ",Freq2_now);
  86.                         LCD_DisplayStringLine(Line5,string);
  87.                   if((Freq2_now>=50)&&(Freq2_now<=50000))
  88.                         {
  89.                                 CCR2_Val = 500000/Freq2_now/PA7_Mul;
  90.                                 PA7_Out=1;LED&=~LED2;
  91.                         }
  92.                         else {PA7_Out=0;LED|=LED2;LCD_DisplayStringLine(Line5,(unsigned char *)" Channel(2):0Hz        ");}
  93.                 }
  94.                 else {PA7_Out=0;LED|=LED2;LCD_DisplayStringLine(Line5,(unsigned char *)" Channel(2):0Hz        ");}
  95.                
  96.                 if(RXcomplitFlag==1)
  97.                 {
  98.                         RXcomplitFlag=0;
  99.                         if((RX_buf[4]-48)==1)
  100.                         {
  101.                                 PA6_Mul=(RX_buf[6]-48)*10+(RX_buf[7]-48);
  102.                                 sprintf((char*)string," N(1):%d                ",PA6_Mul);
  103.               LCD_DisplayStringLine(Line2,string);
  104.                         }
  105.                         else if((RX_buf[4]-48)==2)
  106.                         {
  107.                                 PA7_Mul=(RX_buf[6]-48)*10+(RX_buf[7]-48);
  108.                                 sprintf((char*)string," N(2):%d                ",PA7_Mul);
  109.               LCD_DisplayStringLine(Line6,string);
  110.                         }
  111.                 }
  112.   }
  113. }

  114. void KEY_Scan(void)
  115. {
  116.         if(RB1==0)
  117.         {
  118.                 Delay_Ms(5);
  119.                 if(RB1==0)
  120.                 {
  121.                         if(Local_mode==0)
  122.                         {
  123.                                 Local_mode=1;
  124.                                 USART_Cmd(USARTz, DISABLE);
  125.                                 USART_ITConfig(USARTz, USART_IT_RXNE, DISABLE);
  126. //                                TIM2_PWMin_Config();
  127.                                 RCC_APB1PeriphClockCmd(USARTz_CLK, DISABLE);
  128.         LCD_DisplayStringLine(Line9,(unsigned char *)"                  1 ");
  129.                                 LED|=LED3;
  130.                         }
  131.       else if(Local_mode==1)
  132.                         {
  133.                                 Local_mode=0;Set_channel=1;
  134.                                 USART_Config();
  135.         LCD_DisplayStringLine(Line9,(unsigned char *)"                    ");
  136.                                 LED&=~LED3;
  137.                         }                                
  138.                 }
  139.                 while(!RB1);
  140.         }
  141.         else if(RB2==0)
  142.         {
  143.                 Delay_Ms(5);
  144.                 if(RB2==0)
  145.                 {
  146.                         if(Local_mode==1)
  147.                         {
  148.                                 if(Set_channel==1)
  149.                                 {
  150.                                         Set_channel=2;
  151.                                         LCD_DisplayStringLine(Line9,(unsigned char *)"                  2 ");
  152.                                 }
  153.                                 else if(Set_channel==2)
  154.                                 {
  155.                                         Set_channel=1;
  156.                                         LCD_DisplayStringLine(Line9,(unsigned char *)"                  1 ");
  157.                                 }
  158.                         }        
  159.                 }
  160.                 while(!RB2);
  161.         }
  162.         else if(RB3==0)
  163.         {
  164.                 Delay_Ms(5);
  165.                 if(RB3==0)
  166.                 {
  167.                         if(Local_mode==1)
  168.                         {
  169.                                 if(Set_channel==1)
  170.                                 {
  171.                                         PA6_Mul--;
  172.                                         if(PA6_Mul<=1)PA6_Mul=1;
  173.                                         sprintf((char*)string," N(1):%d                ",PA6_Mul);
  174.                 LCD_DisplayStringLine(Line2,string);
  175.                                         Delay_Ms(5);IIC_Write(0x01,PA6_Mul);
  176.                                 }
  177.                                 else if(Set_channel==2)
  178.                                 {
  179.                                         PA7_Mul--;
  180.                                         if(PA7_Mul<=1)PA7_Mul=1;
  181.                                         sprintf((char*)string," N(2):%d                ",PA7_Mul);
  182.                 LCD_DisplayStringLine(Line6,string);
  183.                                         Delay_Ms(5);IIC_Write(0x02,PA7_Mul);
  184.                                 }
  185.                         }        
  186.                 }
  187.                 while(!RB3);
  188.         }
  189.         else if(RB4==0)
  190.         {
  191.                 Delay_Ms(5);
  192.                 if(RB4==0)
  193.                 {
  194.                         if(Local_mode==1)
  195.                         {
  196.                                 if(Set_channel==1)
  197.                                 {
  198.                                         PA6_Mul++;
  199.                                         if(PA6_Mul>=10)PA6_Mul=10;
  200.                                         sprintf((char*)string," N(1):%d                ",PA6_Mul);
  201.                 LCD_DisplayStringLine(Line2,string);
  202.                                         Delay_Ms(5);IIC_Write(0x01,PA6_Mul);
  203.                                 }
  204.                                 else if(Set_channel==2)
  205.                                 {
  206.                                         PA7_Mul++;
  207.                                         if(PA7_Mul>=10)PA7_Mul=10;
  208.                                         sprintf((char*)string," N(2):%d                ",PA7_Mul);
  209.                 LCD_DisplayStringLine(Line6,string);
  210.                                         Delay_Ms(5);IIC_Write(0x02,PA7_Mul);
  211.                                 }
  212.                         }        
  213.                 }
  214.                 while(!RB4);
  215.         }
  216. }


  217. void LCD_Config(void)
  218. {
  219.         STM3210B_LCD_Init();
  220.         LCD_Clear(White);
  221.         LCD_SetBackColor(White);
  222.         LCD_SetTextColor(Blue);
  223.         LCD_DisplayStringLine(Line0,(unsigned char *)"                    ");        
  224.         LCD_DisplayStringLine(Line1,(unsigned char *)" Channel(1):1000Hz  ");        
  225.         LCD_DisplayStringLine(Line2,(unsigned char *)" N(1):2             ");
  226.         LCD_DisplayStringLine(Line3,(unsigned char *)"                    ");
  227.         LCD_DisplayStringLine(Line4,(unsigned char *)"                    ");
  228.         LCD_DisplayStringLine(Line5,(unsigned char *)" Channel(2):1000Hz  ");
  229.         LCD_DisplayStringLine(Line6,(unsigned char *)" N(2):2             ");
  230.         LCD_DisplayStringLine(Line7,(unsigned char *)"                    ");        
  231.         LCD_DisplayStringLine(Line8,(unsigned char *)"                    ");
  232.         LCD_DisplayStringLine(Line9,(unsigned char *)"                  1 ");        
  233. }        

  234. void USART_SendStr(u8 *str)
  235. {
  236.         u8 i=0;
  237.         do
  238.         {
  239.                 USART_SendData(USART2, *(str+i));
  240.                 while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
  241.                 i++;
  242.         }while(*(str+i)!='\0');
  243.         while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
  244. }

  245. void TIM2_PWMin_Config(void)
  246. {
  247.         GPIO_InitTypeDef GPIO_InitStructure;
  248.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  249.         TIM_ICInitTypeDef  TIM_ICInitStructure;
  250.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  251.         
  252.         GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_1|GPIO_Pin_2;
  253.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  254.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  255.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  256.         
  257.         TIM_TimeBaseStructure.TIM_Period = 0xffff;
  258.   TIM_TimeBaseStructure.TIM_Prescaler = 71;
  259.   TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  260.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  261.   TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  262.         TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
  263.   TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
  264.   TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
  265.   TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
  266.   TIM_ICInitStructure.TIM_ICFilter = 0x0;
  267.         TIM_ICInit(TIM2, &TIM_ICInitStructure);
  268.         
  269.         TIM_ICInitStructure.TIM_Channel = TIM_Channel_3;
  270.   TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
  271.   TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
  272.   TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
  273.   TIM_ICInitStructure.TIM_ICFilter = 0x0;
  274.   TIM_ICInit(TIM2, &TIM_ICInitStructure);
  275.         
  276.   TIM_Cmd(TIM2, ENABLE);
  277.   TIM_ITConfig(TIM2, TIM_IT_CC2|TIM_IT_CC3, ENABLE);
  278. }        


  279. void TIM2_IRQHandler(void)
  280. {
  281.   if(TIM_GetITStatus(TIM2, TIM_IT_CC2) == SET)
  282.   {
  283.                 TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
  284.                 ICReadValue1_now=TIM_GetCapture2(TIM2);
  285.                 if(ICReadValue1_now!=ICReadValue1_last)
  286.                 {
  287.                         Freq1_now=1000000/(ICReadValue1_now-ICReadValue1_last);
  288.                 }
  289.                 if(Freq1_now==0)
  290.                 {
  291.                         Freq1_now=Freq1_last;
  292.                 }
  293.                 ICReadValue1_last=ICReadValue1_now;
  294.                 Freq1_last=Freq1_now;
  295.                 Freq1_Display=1;
  296.         }
  297.         if(TIM_GetITStatus(TIM2, TIM_IT_CC3) == SET)
  298.   {
  299.                 TIM_ClearITPendingBit(TIM2, TIM_IT_CC3);
  300.                 ICReadValue2_now=TIM_GetCapture3(TIM2);
  301.                 if(ICReadValue2_now!=ICReadValue2_last)
  302.                 {
  303.                         Freq2_now=1000000/(ICReadValue2_now-ICReadValue2_last);
  304.                 }
  305.                 if(Freq2_now==0)
  306.                 {
  307.                         Freq2_now=Freq2_last;
  308.                 }
  309.                 ICReadValue2_last=ICReadValue2_now;
  310.                 Freq2_last=Freq2_now;
  311.                 Freq2_Display=1;
  312.         }        
  313. }


  314. void TIM3_PWMout_Config(void)
  315. {
  316.         GPIO_InitTypeDef GPIO_InitStructure;
  317.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  318.   TIM_OCInitTypeDef  TIM_OCInitStructure;
  319.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  320.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  321.         
  322.         GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6|GPIO_Pin_7;
  323.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  324.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  325.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  326.         
  327.         TIM_TimeBaseStructure.TIM_Period = 65535;
  328.   TIM_TimeBaseStructure.TIM_Prescaler = 71;
  329.   TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  330.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  331.   TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
  332.         
  333.   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
  334.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  335.   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
  336.   TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  337.   TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Disable);

  338.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  339.   TIM_OC2Init(TIM3, &TIM_OCInitStructure);
  340.   TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Disable);

  341.   TIM_ITConfig(TIM3, TIM_IT_CC1|TIM_IT_CC2, ENABLE);
  342.   TIM_Cmd(TIM3, ENABLE);
  343. }        

  344. uint16_t capture = 0;

  345. void TIM3_IRQHandler(void)
  346. {
  347.   if (TIM_GetITStatus(TIM3, TIM_IT_CC1) != RESET)
  348.   {
  349.     TIM_ClearITPendingBit(TIM3, TIM_IT_CC1 );
  350.     capture = TIM_GetCapture1(TIM3);
  351.     TIM_SetCompare1(TIM3, capture + CCR1_Val );
  352.                 if(PA6_Out==1)
  353.                 {
  354.                         GPIO_WriteBit(GPIOA, GPIO_Pin_6, (BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_6)));
  355.                 }
  356.                 else
  357.                 {
  358.                         CCR1_Val=0;GPIO_WriteBit(GPIOA, GPIO_Pin_6, (BitAction)0);
  359.                 }
  360.   }

  361.   if (TIM_GetITStatus(TIM3, TIM_IT_CC2) != RESET)
  362.   {
  363.     TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);
  364.     capture = TIM_GetCapture2(TIM3);
  365.     TIM_SetCompare2(TIM3, capture + CCR2_Val);
  366.                 if(PA7_Out==1)
  367.                 {
  368.                         GPIO_WriteBit(GPIOA, GPIO_Pin_7, (BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_7)));
  369.                 }
  370.                 else
  371.                 {
  372.                         GPIO_WriteBit(GPIOA, GPIO_Pin_7, (BitAction)0);
  373.                 }
  374.   }
  375. }

  376. void ALL_Init(void)
  377. {
  378.         NVIC_Configuration();
  379.         GPIO_SetBits(GPIOD, GPIO_Pin_2);
  380.         GPIO_SetBits(GPIOC, LED1|LED2|LED3|LED4|LED5|LED6|LED7|LED8);
  381.   GPIO_ResetBits(GPIOD, GPIO_Pin_2);
  382. }
  383.         
  384. void NVIC_Configuration(void)
  385. {
  386.   NVIC_InitTypeDef NVIC_InitStructure;
  387.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
  388.   NVIC_InitStructure.NVIC_IRQChannel = USARTz_IRQn;
  389.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  390.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  391.   NVIC_Init(&NVIC_InitStructure);
  392.         
  393.         NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  394.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  395.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  396.   NVIC_Init(&NVIC_InitStructure);
  397.         
  398.         NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
  399.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  400.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  401.   NVIC_Init(&NVIC_InitStructure);
  402. }

  403. void SysTick_Handler(void)
  404. {
  405.                 TimingDelay--;
  406. }

  407. void USART2_IRQHandler(void)
  408. {
  409.         u8 temp;
  410.   if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
  411.   {

  412.     temp = USART_ReceiveData(USART2);
  413.     if(temp == 'S')
  414.     {
  415.       RX_buf[count]=temp;Data_right=1;count++;
  416.     }
  417.                 else if(Data_right==1)
  418.     {
  419.       RX_buf[count]=temp;
  420.                         count++;
  421.                         if(count==8)
  422.                         {
  423.                                 count=0;Data_right=0;RXcomplitFlag=1;
  424.                         }
  425.     }
  426.                 USART_ClearITPendingBit(USART2, USART_IT_RXNE);
  427.   }
  428. }


  429. void LED_Run(void)
  430. {
  431.         GPIO_Write(GPIOC,LED);
  432.         GPIO_SetBits(GPIOD, GPIO_Pin_2);
  433.   GPIO_ResetBits(GPIOD, GPIO_Pin_2);
  434. }














  435. void KEY_Config(void)
  436. {
  437.         GPIO_InitTypeDef GPIO_InitStructure;
  438.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);
  439.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_8;
  440.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  441.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  442.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2;
  443.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  444.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  445. }        

  446. void IIC_Config(void)
  447. {
  448.         i2c_init();
  449. }        
  450. u8 IIC_Read(u8 add)
  451. {
  452.         u8 data;
  453.         I2CStart();
  454.         I2CSendByte(0xa0);
  455.         I2CSendAck();
  456.         I2CSendByte(add);
  457.         I2CSendAck();
  458.         
  459.         I2CStart();
  460.         I2CSendByte(0xa1);
  461. ……………………

  462. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


所有資料51hei提供下載:
嵌入式第五屆省賽-雙通道方波頻率檢測與倍頻輸出HGS20180328.rar (449.17 KB, 下載次數: 68)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品精品国产亚洲综合 | 欧美久久久久久 | 中文字幕免费 | 四虎永久免费影院 | 中文字幕av网站 | 国产一区二区三区色淫影院 | 成人美女免费网站视频 | 在线久草| 一区在线视频 | 国产一级视频在线播放 | 中文日韩在线 | 色综合久久久久 | 六月色婷 | 亚洲精品在线91 | 国产精品成人在线 | 涩涩视频网站在线观看 | 最新中文字幕久久 | 91aiai| 国产免国产免费 | 中文字幕视频在线观看免费 | 国产精品国产三级国产aⅴ原创 | 久久国产成人精品国产成人亚洲 | 色吧综合| 又黑又粗又长的欧美一区 | 精品国产乱码久久久久久蜜柚 | 成人一区二区三区 | 日韩三极 | 国产成人精品综合 | 午夜在线影院 | 成人久久 | 欧美午夜精品 | 成人免费在线播放 | 精品久久久久久亚洲精品 | 97伦理最新伦理 | 国产99视频精品免视看9 | 天堂中文av| 久久久久久久一区二区三区 | 九九天堂网 | 免费亚洲视频 | 日韩中文一区二区三区 | 成人精品久久 |