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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5262|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32定時(shí)器捕獲,計(jì)算頻率成功例程源代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:320528 發(fā)表于 2018-5-15 10:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
親自試過(guò),調(diào)試成功

1.0  從此版本開(kāi)始,代碼中所有變量都定義在sysconfig.h中

2.0  PB6接步進(jìn)電機(jī)脈沖
     PC9接步進(jìn)電機(jī)方向   
     PC8接電磁閥
     PC7接泄氣閥
     PC1接AD采樣

3.0  A5 A6 06 03 05 00     點(diǎn)動(dòng)前進(jìn)
     A5 A6 06 04 05 07     點(diǎn)動(dòng)后退
     A5 A6 05 05 00        持續(xù)前進(jìn)
     A5 A6 05 06 03        持續(xù)后退
     A5 A6 05 07 02        停止

單片機(jī)源程序如下:
  1. /********************************************************************************
  2. * 文件名  :main.c
  3. * 描述    :        
  4. * 實(shí)驗(yàn)平臺(tái):STM32開(kāi)發(fā)板
  5. * 庫(kù)版本  :ST3.5.0
  6. * 作者    :liuzhen
  7. ********************************************************************************/
  8. #include "stm32f10x.h"
  9. #include "sysconfig.h"
  10. #include "usart1.h"
  11. #include "BSP.H"
  12. #include "led.h"
  13. #include "tim2.h"
  14. #include "pwm_output.h"
  15. #include "exti.h"
  16. #include "moto.h"
  17. #include "adc.h"
  18. //================================ 串口所用變量 ==============================================
  19. u8 Rx1Buffer[Rx1Buffer_Length];                //串口1接收數(shù)據(jù)緩沖區(qū)
  20. u8 Tx1Buffer[Tx1Buffer_Length];                //串口1發(fā)送數(shù)據(jù)緩沖區(qū)
  21. u8 Rx1Cnt=0;                                         //串口1接收數(shù)據(jù)計(jì)數(shù)
  22. u8 RX1_Recive_Frame_State=0;                         //串口1接收幀頭狀態(tài),初始化位0
  23. u8 RX1_Recive_FrameCnt_State=0;         //串口1接收一幀數(shù)據(jù)的總長(zhǎng)度(即一幀數(shù)據(jù)的第三個(gè)元素表示該幀的總長(zhǎng)度)
  24. u8 RX1_Over_Flag=0;                                        //串口1接收數(shù)據(jù)完成標(biāo)志位
  25. //=============================== 壓接機(jī)所用變量 ==============================================
  26. u8 Press_Mold_Length=0;                                   //定義壓膜長(zhǎng)度
  27. u8 Press_Overlap=0;                                                                //定義疊壓長(zhǎng)度
  28. u8 Press_Mold_Cnt=0;                                      //定義總壓膜次數(shù)               
  29. u16 Mid_Unpress_Length=0;                                  //定義中間不壓區(qū)長(zhǎng)度
  30. u8 Press_Mold_Effect_Length=0;                //定義滑塊有效行走長(zhǎng)度,等于壓膜長(zhǎng)度-疊壓長(zhǎng)度
  31. u8 Latest_PressQuality_Flag=0;          //上次壓接質(zhì)量合格標(biāo)志位
  32. u8 Current_Press_Cnt=0;           //定義當(dāng)前壓膜編號(hào)
  33. u32 LeftDone_MoveRight_NeedPWMCnt=0;  //接續(xù)管左邊全部壓完,右移時(shí)需多少PWM回到右邊壓接初始點(diǎn)
  34. u8 Press_Cnt_OddEven_Flag=0;                            //總壓接次數(shù)為偶數(shù)是該位0,總壓接次數(shù)為奇數(shù)是該位1

  35. u8 Hydraumatic_80MPa_Flag=0;                 //液壓達(dá)到80MPa標(biāo)志位
  36. u8 Hydropress_Reset_Flag=0;                 //液壓機(jī)復(fù)位標(biāo)志位,如果液壓機(jī)不完全釋放,會(huì)影響滑臺(tái)前進(jìn)
  37. u8 Hydropress_Finish_Onepress_Flag=0; //液壓機(jī)完成一次壓接標(biāo)志位

  38. u8 Manual_ContinueMove_Flag=0;                           //手動(dòng)下,持續(xù)控制滑臺(tái)行走
  39. u8 AutoPressTest_Start_Flag = 0;            //自動(dòng)壓接檢測(cè)開(kāi)始標(biāo)志位,也是整個(gè)設(shè)備開(kāi)始工作標(biāo)志位
  40. u8 AutoPressTest_SlipStep_FinishFlag = 0;    //自動(dòng)壓接檢測(cè)時(shí),滑塊每完成一個(gè)最小單位的移動(dòng)標(biāo)志位
  41. u8 DiameterDetect_FinishFlag=0;                                //檢測(cè)裝置檢測(cè)完成標(biāo)志位
  42. u8 SlidBlock_GoBackMove_Flag=0;                    //滑臺(tái)返工標(biāo)志位,返回不合格處時(shí),只需再次壓接,檢測(cè)裝置不需要檢測(cè)
  43. //============================= 滑臺(tái)步進(jìn)電機(jī)所用變量 ===========================================
  44. float mm_PWMCnt=0.0;                          //滑塊行走1mm需要的脈沖數(shù)                       
  45. u32 PWMCnt=0;                                                                //當(dāng)前輸出PWM脈沖,正方向加,反方向減
  46. u32 PWMAll=0;                                                                //記錄從開(kāi)始到結(jié)束發(fā)出的PWM總數(shù),默認(rèn)正方向加,反方向減

  47. u8 Move_SequenceNO=0;                    //滑塊在第一壓接處Move_SequenceNO為0,下一壓機(jī)處Move_SequenceNO為1......
  48. /*=====================================================================
  49.         Move_order[0] == 1表示滑塊已處在第一模壓接處,開(kāi)始?jí)航忧澳J(rèn)處于第一模位置
  50.         Move_order[1] == 1表示滑塊開(kāi)始向第二模壓接處移動(dòng)
  51.         Move_order[2] == 1表示滑塊開(kāi)始向第三模壓接處移動(dòng)
  52.         。。。。。。
  53. =====================================================================*/
  54. u8 Move_order[30]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55.                                                                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56.                                                                    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
  57. u16 Tim6_Frequency = 0;
  58. u16 Tim2_CH2 =0;       
  59. u16 Tim3_CH2 =0;
  60. u16 Tim4_CH2 =0;
  61. u16 Tim5_CH2 =0;                                                                         
  62. u16 Tim8_CH2 =0;
  63. u16 Tim1_CH2 =0;                                                                                 
  64. //============================= 壓力傳感器所用變量 ===========================================                                                                         
  65. __IO uint16_t ADC_ConvertedValue;                                                                         
  66. //================================= 函數(shù)原型聲明 ===========================================                                                                                                                  
  67. void Delay(__IO uint32_t nCount);         //延時(shí)函數(shù)原型聲明
  68. void GPIO_Configuration(void);      //TIM2 channel 2 pin (PA.01) configuration
  69. /*=================================================================================
  70. * 函數(shù)名:SYS_INIT
  71. * 描述  :外設(shè)初始化
  72. * 輸入  :無(wú)
  73. * 輸出  : 無(wú)
  74. * 調(diào)用  :內(nèi)部調(diào)用
  75. ================================================================================*/
  76. void SYS_INIT(void)
  77. {
  78.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);            //先打開(kāi)APB2的復(fù)用時(shí)鐘AFIO
  79.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //使能SWD關(guān)閉JTAG,釋放被占用的引腳                  

  80.         USART1_Config(115200);                //配置串口1為:115200 8-N-1
  81.         LED_GPIO_Config();
  82.         GPIO_Configuration();     /* TIM2 channel 2 pin (PA.01) configuration */
  83.         Nvic_Init();                          
  84.         Tim6_Init(500);        //Tim6用于基本定時(shí),Tim6_Init(500)代表500us中斷一次
  85.         Tim1_Init();           //Tim5捕獲初始化
  86.         Tim2_Init();                 //Tim2捕獲初始化
  87.         Tim3_Init();           //Tim3捕獲初始化
  88.         Tim4_Init();           //Tim4捕獲初始化
  89.         Tim8_Init();           //Tim5捕獲初始化
  90.         printf("\r\n 初始化完畢 \r\n");
  91. }
  92. /*=================================================================================
  93. * 函數(shù)名:main
  94. * 描述  :主函數(shù)
  95. ================================================================================*/
  96. int main(void)
  97. {        
  98.         SYS_INIT();
  99.         while(1)
  100.         {
  101.      ;
  102.         }
  103. }

  104. void GPIO_Configuration(void)
  105. {               
  106.   GPIO_InitTypeDef GPIO_InitStructure;
  107.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);/* GPIOA clock enable */
  108.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);/* GPIOA clock enable */
  109.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);/* GPIOA clock enable */
  110.   /* TIM2 channel 2 pin (PA.01) configuration */
  111.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_7;
  112.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  113.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  114.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  115.        
  116.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  117.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  118.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  119.   GPIO_Init(GPIOC, &GPIO_InitStructure);
  120.        
  121.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  122.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  123.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  124.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  125.        
  126.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,ENABLE);  //開(kāi)啟即將使用重映射的時(shí)鐘
  127.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);                            //TIM1復(fù)用功能完全映射
  128.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
  129.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  130.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  131.   GPIO_Init(GPIOE, &GPIO_InitStructure);
  132. }
  133. /*=================================================================================
  134. * 函數(shù)名:Delay
  135. * 描述  :延時(shí)函數(shù)
  136. * 輸入  :無(wú)
  137. * 輸出  : 無(wú)
  138. * 調(diào)用  :外部調(diào)用
  139. ================================================================================*/
  140. void Delay(__IO uint32_t nCount)
  141. {
  142.   for(; nCount != 0; nCount--);
  143. }
  144. //typedef enum { FAILED = 0, PASSED = !FAILED} TestStatus;
  145. //__IO TestStatus TransferStatus1 = FAILED;
  146. //TestStatus Buffercmp(uint8_t* pBuffer1, uint8_t* pBuffer2, uint16_t BufferLength);

  147. /******************* (C) COPYRIGHT 2012 WildFire Team *****END OF FILE************/

復(fù)制代碼

所有資料51hei提供下載:
TimBuHuo_20160415wan.rar (470.25 KB, 下載次數(shù): 46)


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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产色在线 | av在线播放网站 | 免费一级大片 | 日韩av免费在线播放 | 激情五月激情综合网 | 精品亚洲一区二区三区 | 天天做天天干 | 午夜精品一区二区三区在线视频 | 亚洲久久久久久 | 欧美成人免费视频 | 久久久一 | 啪啪高潮动态图 | 成人性色生活片 | 久久综合影院 | 91超碰人人 | 三年中文在线看免费观看 | 中文字幕av在线 | 亚洲成人精品视频 | 欧美日韩中文 | 在线免费观看黄 | 国产成人在线观看免费网站 | 国产a级大片| 一级免费片| 一区二区三区在线观看视频 | 日韩视频在线免费观看 | 日韩a在线| 国产一区不卡 | 四虎在线免费视频 | 性生活毛片 | 国产三级在线播放 | 18视频在线观看 | 黄色三级网站 | 日本a在线观看 | aaa一级片 | 国产精品久久久久久久 | 亚洲男人天堂av | 亚洲欧美在线视频 | 99在线播放 | 国产成人综合在线 | 久久久久久亚洲 | 我要看一级黄色片 |