久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    stm32f407之GPIO(操作寄存器)

     戴維圖書館 2014-04-08

    四、GPIO




           stm32f407VG這款單片機上共有PA-PE共5×16共80個復用IO口,每個通用I / O端口有4個32位配置寄存器(GPIOx_MODERGPIOx_OTYPER GPIOx_OSPEEDR GPIOx_PUPDR),兩個32位數據寄存器(GPIOx_IDR和GPIOx_ODR),一個32位的置位/復位寄存器(GPIOx_BSRR),32位鎖定寄存器(GPIOx_LCKR)和兩個32位的備用功能選擇寄存器(GPIOx_AFRHGPIOx_AFRL)。

     

     

     

    設置步驟:

    1.     使能相關時鐘

    2.     設置相應的IO口為輸入或輸出

    3.     設置輸入\輸出的類型

    4.     設置輸出的速度(如果設置為輸入,此步跳過)

    5.     如果輸出速度>=50M,開啟補償單元

    6.     設置上拉下拉寄存器

    7.     通過復位置位寄存器和輸入輸出數據寄存器進行操作。



    程序:

    1. /************************************ 
    2.     標題:操作GPIO的練習 
    3.     軟件平臺:IAR for ARM6.21 
    4.     硬件平臺:stm32f4-discovery 
    5.     主頻:168M 
    6.      
    7.     author:小船 
    8.     data:2012-01-16 
    9. *************************************/  
    10.   
    11. #include <stm32f4xx.h>   
    12.   
    13. uint32_t Gb_TimingDelay;  
    14.   
    15. void Delay(uint32_t nTime);  
    16.   
    17. void main ()  
    18. {     
    19.   SysTick_Config(SystemCoreClock / 1000);    //設置systemtick一毫秒中斷  
    20.     
    21.   RCC->AHB1ENR |= 0x00000008;    //使能GPIOD時鐘  
    22.   RCC->APB2ENR |= (1<<14);     //使能syscfg時鐘  
    23.     
    24.   GPIOD->MODER &= 0x00FFFFFF;     //設置PD12,13,14,15輸出  
    25.   GPIOD->MODER |= 0x55000000;   
    26.     
    27.   GPIOD->OTYPER &= 0xFFFF0FFF;   //設置PD12,13,14,15推挽輸出  
    28.     
    29.   GPIOD->OSPEEDR &= 0x00FFFFFF;  //PD12,13,14,15 速度100m  
    30.   GPIOD->OSPEEDR |= 0xff000000;  
    31.     
    32.   SYSCFG->CMPCR = 0x00000001;    //使用IO補償單元,  
    33. //當GPIO速度超過50M的時候要考慮使用此設置  
    34.     
    35.   GPIOD->PUPDR &= 0x00FFFFFF;    //PD12,13,14,15 無上拉無下拉  
    36.     
    37.   GPIOD->BSRRH = 0xf000;      //reset register GPIOx_BSRRH, write only  
    38.                             //set register GPIOx_BSRRL, write only  
    39.     
    40.   while(1)  
    41.   {  
    42.       GPIOD->BSRRH = 0xf000;  
    43.       GPIOD->BSRRL = 0x1000;   
    44.       Delay(500);  
    45.         
    46.       GPIOD->BSRRH = 0xf000;  
    47.       GPIOD->BSRRL = 0x1000<<1;  
    48.       Delay(500);  
    49.         
    50.       GPIOD->BSRRH = 0xf000;  
    51.       GPIOD->BSRRL = 0x1000<<2;  
    52.       Delay(500);  
    53.         
    54.       GPIOD->BSRRH = 0xf000;  
    55.       GPIOD->BSRRL = 0x1000<<3;  
    56.       Delay(500);  
    57.   }  
    58. }  
    59.   
    60. void Delay(uint32_t nTime)  
    61. {   
    62.   Gb_TimingDelay = nTime;  
    63.   
    64.   while(Gb_TimingDelay != 0);  
    65. }  
    66.   
    67.   
    68. void SysTick_Handler(void)  
    69. {  
    70.   if (Gb_TimingDelay != 0x00)  
    71.   {   
    72.     Gb_TimingDelay--;  
    73.   }  
    74. }  





    更多 0

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 日本一区二区三区免费播放视频站| 亚洲欧美自偷自拍视频图片| 人人妻人人狠人人爽天天综合网| 亚洲欧美人成电影在线观看| 亚洲欧美日产综合在线网| 色窝窝无码一区二区三区 | 18禁美女裸体爆乳无遮挡| 国内精品久久久久影院网站| 午夜大片爽爽爽免费影院| 中文精品久久久久人妻不卡| 亚洲人成网网址在线看| 精品国精品无码自拍自在线| 草裙社区精品视频播放| 人妻少妇偷人精品无码| 免费现黄频在线观看国产| 精品一区二区三区自拍图片区| 亚洲精品一区二区区别| 熟妇人妻一区二区三区四区| 在线高清免费不卡全码| 亚洲国产精品久久久久久久| 国产AV福利第一精品| 国产V亚洲V天堂A无码| 国产美熟女乱又伦AV果冻传媒 | 亚洲日韩日本中文在线| 日韩大片高清播放器大全| 熟妇人妻无码中文字幕老熟妇| 欧美精品人人做人人爱视频 | 亚洲午夜成人精品电影在线观看| 亚洲精品乱码久久久久久自慰| 成人3D动漫一区二区三区| 成人AV无码一区二区三区| 成人特黄A级毛片免费视频| 国产精品午夜福利精品| 日本精品人妻无码77777| 国产精品专区第1页| 国产午夜福利视频在线| 国精产品一区二区三区有限公司| 亚洲 欧洲 无码 在线观看| 亚洲精品一区二区妖精| 亚洲JIZZJIZZ中国少妇中文| 在线观看热码亚洲AV每日更新|