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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm8單片機源程序如下:測速程序 含串口通信

[復制鏈接]
跳轉到指定樓層
樓主
ID:551708 發表于 2019-5-31 11:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于stm8 光電門測速系統  能夠與labview 和串口助手通信

單片機源程序如下:
  1. #include "stm8s.h"
  2. void GPIO_init_Config()
  3. {
  4.   GPIO_DeInit(GPIOB);
  5.   GPIO_DeInit(GPIOA);
  6.   GPIO_DeInit(GPIOC);
  7.   GPIO_Init(GPIOB,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);
  8.   GPIO_Init(GPIOA,GPIO_PIN_HNIB,GPIO_MODE_IN_PU_IT);
  9. }
  10. //延時函數,單位毫秒
  11. void delay_ms(u16 i)
  12. {
  13.   TIM2_DeInit();
  14.   TIM2_TimeBaseInit(TIM2_PRESCALER_2,999);
  15.   while(i--)
  16.   {
  17.      TIM2_Cmd(ENABLE);
  18.      while(TIM2_GetFlagStatus(TIM2_FLAG_UPDATE)!=1);
  19.      TIM2_ClearFlag(TIM2_FLAG_UPDATE);
  20.      TIM2_Cmd(DISABLE);
  21.   }
  22. }
  23. //TIM2初始化函數
  24. void TIM3_Cap_Init()
  25. {
  26.   TIM3_DeInit();
  27.   TIM3_TimeBaseInit(TIM3_PRESCALER_2,65535);
  28.   TIM3_ICInit(TIM3_CHANNEL_1,TIM3_ICPOLARITY_FALLING ,TIM3_ICSELECTION_DIRECTTI,TIM3_ICPSC_DIV1,0x00);
  29.   TIM3_ITConfig(TIM3_IT_CC1|TIM3_IT_UPDATE,ENABLE);
  30.   TIM3_CCxCmd(TIM3_CHANNEL_1,ENABLE);
  31.   enableInterrupts();
  32.   TIM3_Cmd(ENABLE);
  33. }

  34. //串口配置函數
  35. void USART_Init()
  36. {
  37.   UART2_DeInit();
  38.   UART2_Init((u32)9600,
  39.              UART2_WORDLENGTH_8D,
  40.              UART2_STOPBITS_1,
  41.              UART2_PARITY_NO,
  42.              UART2_SYNCMODE_CLOCK_DISABLE,
  43.              UART2_MODE_TXRX_ENABLE);
  44.   UART2_Cmd(ENABLE);
  45. }
  46. void USART_SendByte(u8 TxDate)
  47. {
  48.   UART2_SendData8(TxDate);
  49.   while(!UART2_GetFlagStatus(UART2_FLAG_TXE));
  50. }
  51. void USART_Write(u8* TxDate,u16 len)
  52. {
  53.   u16 i;
  54.   for(i=0;i<len;i++)
  55.   {
  56.     USART_SendByte(TxDate[i]);
  57.   }
  58. }
  59. u16 Cap_Val=0;
  60. u8 Cap_Sta=0;
  61. #pragma vector=18
  62. __interrupt void TIMER_IRQHander(void)
  63. {
  64.   if((Cap_Sta&0X80)==0)
  65.   {
  66. #pragma vector=17
  67.    if (TIM3_GetITStatus(TIM3_IT_UPDATE)==SET)
  68.    {
  69.      if(Cap_Sta&0X40)
  70.      {
  71.        if((Cap_Sta&0X3F)==0X3F)
  72.        {
  73.          Cap_Sta|=0X80;
  74.          Cap_Val=0XFFFF;  
  75.         }
  76.         else
  77.         {
  78.          Cap_Sta++;
  79.          }
  80.       }
  81.       TIM3_ClearITPendingBit(TIM3_IT_UPDATE);
  82.     }
  83.     if(TIM3_GetITStatus(TIM3_IT_CC1)==SET)
  84.     {
  85.       if(Cap_Sta&0X40)//捕獲到一個上升沿
  86.       {
  87.         Cap_Sta|=0X80;//標記成功捕獲到一次低電平脈寬
  88.         Cap_Val=TIM3_GetCapture1();
  89.         TIM3_OC1PolarityConfig(TIM3_ICPOLARITY_FALLING);//設置為下降沿觸發
  90.       }
  91.       else//還未開始,第一次捕獲下降沿
  92.       {
  93.         Cap_Sta=0;
  94.         Cap_Val=0;
  95.         TIM3_SetCounter(0);
  96.         Cap_Sta|=0X40;//標記捕獲到了下降沿
  97.         TIM3_OC1PolarityConfig(TIM3_ICPOLARITY_RISING);//設置為上升沿觸發
  98.       }
  99.     }
  100.   }
  101.   TIM3_ClearITPendingBit(TIM3_IT_CC1);
  102. }
  103. //主函數
  104. int main(void)
  105. {
  106.   u32 temp=0;
  107.   u8 s[10];
  108.   GPIO_init_Config();
  109.   TIM3_Cap_Init();
  110.   USART_Init();
  111.   GPIO_WriteHigh(GPIOB,GPIO_PIN_LNIB);
  112.   while(1)
  113.   {
  114.     if(Cap_Sta&0X80)
  115.     {
  116.       temp=Cap_Sta&0X3F;
  117.       temp*=65536;
  118.       temp+=Cap_Val;
  119.       Cap_Sta=0;
  120.       Cap_Val=0;
  121.     }
  122.     if(temp!=0)
  123.     {
  124.       GPIO_WriteReverse(GPIOB,GPIO_PIN_4);
  125.       //temp=0;
  126.       delay_ms(temp);
  127.       //GPIO_WriteReverse(GPIOB,GPIO_PIN_LNIB);
  128.       //delay_ms(temp/100000);
  129.     }
  130.    
  131.    }
  132. }
復制代碼

所有資料51hei提供下載:
定時器捕獲按鍵時長控制燈閃爍間隔.7z (425.53 KB, 下載次數: 15)


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

使用道具 舉報

沙發
ID:1 發表于 2019-5-31 19:43 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av中文在线 | 国产一区二区在线视频 | 日韩精品免费视频 | avmans最新导航地址 | 超碰操 | 久久国产精品久久久久 | 国产精品成人av | 国产日韩欧美在线一区 | 亚洲午夜精品在线观看 | 久久91精品久久久久久9鸭 | 亚洲欧美中文日韩在线v日本 | 国产精品视频在线播放 | 黄色三级在线播放 | 欧美视频一区二区三区 | 天天操天天射综合 | 中文字幕蜜臀av | 亚洲一区二区三区四区五区午夜 | 殴美成人在线视频 | 一级在线视频 | 黑人巨大精品欧美黑白配亚洲 | 亚洲国产成人在线 | 国产一区二区三区四区三区四 | 日韩中文字幕免费在线 | 国内av在线 | 国产精品久久久久久久免费大片 | 亚洲精品中文在线观看 | 亚洲精品高清视频在线观看 | 中文字幕 亚洲一区 | 日韩av一区二区在线观看 | 日本成人片在线观看 | 日韩在线观看一区二区三区 | 欧美日韩亚洲一区 | 欧美片网站免费 | 亚洲精品在线视频 | 国产美女网站 | 日韩精品一区二区三区免费视频 | 国产精品特级毛片一区二区三区 | 免费看国产精品视频 | 91国产视频在线 | 欧美成视频 | 欧美黑人巨大videos精品 |