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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STIM32F10x單片機按鍵button控制流水燈代碼

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1036885 發(fā)表于 2022-6-25 10:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
通過TIM2定時器中斷控制LED流水燈的閃爍時間,并且增加兩個按鍵PA1、PA2,其中PA1控制LED流水燈的啟動,8個燈先依次閃爍,時間間隔1s,然后8個燈同時閃爍且時間間隔1s,PA2控制停止,使定時器不工作,將燈保持現(xiàn)在狀態(tài),過程非常簡單,只需幾分鐘搞懂。
電路原理圖如下:

單片機源程序如下:
  1. #include "stm32f10x.h"

  2. GPIO_InitTypeDef   GPIO_InitStructure;
  3. EXTI_InitTypeDef   EXTI_InitStructure;
  4. NVIC_InitTypeDef   NVIC_InitStructure;
  5. TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

  6. void TIM2_Config(void);//定時器TIM2配置函數(shù)
  7. void EXTI1_EXTI2_Config(void);//按鍵PA1、PA2中斷配置函數(shù)

  8. int main(void)
  9. {       
  10.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  11.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2|        GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  14.         GPIO_Init(GPIOC, &GPIO_InitStructure);

  15.         TIM2_Config();
  16.         EXTI1_EXTI2_Config();
  17.         GPIOC->ODR=0x00ff;
  18.         while (1)
  19.         {
  20.         }
  21. }
  22. void TIM2_Config(void)
  23. {
  24.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//proteus中的bug,用其他定時器,必須先使能TIM1。
  25.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  26.        
  27.         TIM_TimeBaseStructure.TIM_Period = 1000;//基準為0.1ms,所以設(shè)置10000,剛好0.1ms乘以10000為1s。
  28.         TIM_TimeBaseStructure.TIM_Prescaler = 799;//我們設(shè)置的proteus中系統(tǒng)時鐘為8M,所以這里設(shè)置799,我們時間間隔為1s。
  29.         TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  30.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  31.         TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
  32.         // TIM_Cmd(TIM2, ENABLE);不是使能TIM2,因為用中斷,所以在PA1、PA2中斷函數(shù)中分別使能和不使能。
  33.        
  34.         TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//定時器中斷使能。
  35.         NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  36.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  37.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  38.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  39.         NVIC_Init(&NVIC_InitStructure);
  40. }
  41. void EXTI1_EXTI2_Config(void)
  42. {       
  43.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  44.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2;
  45.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  46.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  47.        
  48.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  49.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1);
  50.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource2);
  51.        
  52.         EXTI_InitStructure.EXTI_Line = EXTI_Line1|EXTI_Line2;
  53.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  54.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;  
  55.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  56.         EXTI_Init(&EXTI_InitStructure);
  57.        
  58.         NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
  59.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  60.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  61.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  62.         NVIC_Init(&NVIC_InitStructure);       
  63.        
  64.         NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;
  65.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  66.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  67.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  68.         NVIC_Init(&NVIC_InitStructure);
  69. }
復制代碼

所有資料51hei附件下載:
Keil代碼工程.7z (3.64 MB, 下載次數(shù): 20)


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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久热国产精品视频 | 羞羞视频免费观看入口 | 国产成人一区二区 | 在线观看中文字幕dvd播放 | 亚洲一区二区久久 | 91成人精品 | 国产高清一区二区 | 亚洲第一色av | 午夜在线| 欧美三级在线 | 本地毛片 | 成人免费视频观看视频 | 91精品国产91久久综合桃花 | 99久久婷婷国产综合精品首页 | 五月花丁香婷婷 | 成人在线精品 | 国产精品网址 | 青青草视频网 | 亚洲三区在线观看 | 久久久久久久香蕉 | 91国内精品久久 | 伊人狠狠干| 国产中文| 91精品久久久久久久久久 | 亚洲第一天堂 | 亚洲一区二区三区在线免费 | 一级高清| 欧美v在线观看 | 国产欧美视频一区 | 欧美日韩一卡二卡 | 亚洲高清视频在线观看 | 日本午夜视频 | 亚洲性人人天天夜夜摸 | 午夜小视频在线播放 | 国产中文区二幕区2012 | 97精品国产97久久久久久免费 | 久久久精品久久久 | h视频亚洲| 欧洲一区二区视频 | 天天躁日日躁xxxxaaaa | 欧美日韩国产在线观看 |