娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

stm32固件庫Bitbang操作

發布者:SereneWanderer最新更新時間:2025-01-20 來源: jianshu關鍵字:stm32  固件庫 手機看文章 掃描二維碼
隨時隨地手機看文章

// GPIO 位操作

#include 'stm32f4xx.h'


// 這里只定義了 GPIO ODR和IDR這兩個寄存器的位帶別名區地址,其他寄存器的沒有定義


//SRAM 位帶區:    0X2000 0000~0X200F 0000

//SRAM 位帶別名區:0X2200 0000~0X23FF FFFF


//外設 位帶區:    0X4000 0000~0X400F FFFF

//外設 位帶別名區:0X4200 0000~0X43FF FFFF


// 把“位帶地址+位序號”轉換成別名地址的宏

#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x02000000+((addr & 0x000FFFFF)<<5)+(bitnum<<2)) 


// 把一個地址轉換成一個指針

#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr))


// 把位帶別名區地址轉換成指針

#define BIT_ADDR(addr, bitnum)   MEM_ADDR(BITBAND(addr, bitnum)) 



// GPIO ODR 和 IDR 寄存器地址映射 

#define GPIOA_ODR_Addr    (GPIOA_BASE+20) 

#define GPIOB_ODR_Addr    (GPIOB_BASE+20)   

#define GPIOC_ODR_Addr    (GPIOC_BASE+20)  

#define GPIOD_ODR_Addr    (GPIOD_BASE+20) 

#define GPIOE_ODR_Addr    (GPIOE_BASE+20) 

#define GPIOF_ODR_Addr    (GPIOF_BASE+20)      

#define GPIOG_ODR_Addr    (GPIOG_BASE+20)

#define GPIOH_ODR_Addr    (GPIOH_BASE+20)      

#define GPIOI_ODR_Addr    (GPIOI_BASE+20)

#define GPIOJ_ODR_Addr    (GPIOJ_BASE+20)      

#define GPIOK_ODR_Addr    (GPIOK_BASE+20)


#define GPIOA_IDR_Addr    (GPIOA_BASE+16)  

#define GPIOB_IDR_Addr    (GPIOB_BASE+16)  

#define GPIOC_IDR_Addr    (GPIOC_BASE+16)   

#define GPIOD_IDR_Addr    (GPIOD_BASE+16)  

#define GPIOE_IDR_Addr    (GPIOE_BASE+16)    

#define GPIOF_IDR_Addr    (GPIOF_BASE+16)    

#define GPIOG_IDR_Addr    (GPIOG_BASE+16)  

#define GPIOH_IDR_Addr    (GPIOH_BASE+16)

#define GPIOI_IDR_Addr    (GPIOI_BASE+16)

#define GPIOJ_IDR_Addr    (GPIOJ_BASE+16)

#define GPIOK_IDR_Addr    (GPIOK_BASE+16)



// 單獨操作 GPIO的某一個IO口,n(0,1,2...16),n表示具體是哪一個IO口

#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)  //輸出   

#define PAin(n)    BIT_ADDR(GPIOA_IDR_Addr,n)  //輸入   

  

#define PBout(n)   BIT_ADDR(GPIOB_ODR_Addr,n)  //輸出   

#define PBin(n)    BIT_ADDR(GPIOB_IDR_Addr,n)  //輸入   

  

#define PCout(n)   BIT_ADDR(GPIOC_ODR_Addr,n)  //輸出   

#define PCin(n)    BIT_ADDR(GPIOC_IDR_Addr,n)  //輸入   

  

#define PDout(n)   BIT_ADDR(GPIOD_ODR_Addr,n)  //輸出   

#define PDin(n)    BIT_ADDR(GPIOD_IDR_Addr,n)  //輸入   

  

#define PEout(n)   BIT_ADDR(GPIOE_ODR_Addr,n)  //輸出   

#define PEin(n)    BIT_ADDR(GPIOE_IDR_Addr,n)  //輸入  

  

#define PFout(n)   BIT_ADDR(GPIOF_ODR_Addr,n)  //輸出   

#define PFin(n)    BIT_ADDR(GPIOF_IDR_Addr,n)  //輸入  

  

#define PGout(n)   BIT_ADDR(GPIOG_ODR_Addr,n)  //輸出   

#define PGin(n)    BIT_ADDR(GPIOG_IDR_Addr,n)  //輸入  


#define PHout(n)   BIT_ADDR(GPIOH_ODR_Addr,n)  //輸出   

#define PHin(n)    BIT_ADDR(GPIOH_IDR_Addr,n)  //輸入  


#define PIout(n)   BIT_ADDR(GPIOI_ODR_Addr,n)  //輸出   

#define PIin(n)    BIT_ADDR(GPIOI_IDR_Addr,n)  //輸入 


#define PJout(n)   BIT_ADDR(GPIOJ_ODR_Addr,n)  //輸出   

#define PJin(n)    BIT_ADDR(GPIOJ_IDR_Addr,n)  //輸入  


#define PKout(n)   BIT_ADDR(GPIOK_ODR_Addr,n)  //輸出   

#define PKin(n)    BIT_ADDR(GPIOK_IDR_Addr,n)  //輸入  


void LED_GPIO_Config(void);

void SOFT_Delay(__IO uint32_t nCount);




/**

  * @brief  主函數

  * @param  無

  * @retval 無

  */

int main(void)

{

    /* LED 端口初始化 */

    LED_GPIO_Config();


    while (1)

    {

        // PF6 = 0,點亮LED

        PDout(15)= 0;       

        SOFT_Delay(0x0FFFFF);

        

        // PF6 = 1,熄滅LED        

        PDout(15)= 1;

        SOFT_Delay(0x0FFFFF);       

    }


}


// PF6 <-> 紅燈

void LED_GPIO_Config(void)

{       

        // 定義一個GPIO_InitTypeDef類型的結構體

        GPIO_InitTypeDef GPIO_InitStructure;


        // 開啟GPIO的時鐘

        RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOD, ENABLE); 


        // 選擇要控制的IO口                                                       

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;  


        // 設置IO口輸出

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

    

    // 設置IO輸出為推挽模式

    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

        

        // IO 內部上拉

      GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;


        // IO 輸出速率為50M

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 


        // 初始化IO口

        GPIO_Init(GPIOD, &GPIO_InitStructure);        


        // IO 默認輸出高電平

        GPIO_SetBits(GPIOD, GPIO_Pin_15);           

}


// 簡陋的軟件延時函數

void SOFT_Delay(__IO uint32_t nCount)   

{

    for(; nCount != 0; nCount--);

}


/*********************************************END OF FILE**********************/


關鍵字:stm32  固件庫 引用地址:stm32固件庫Bitbang操作

上一篇:記錄一次在Windows上面搭建 STM32環境 之codeblocks 安裝
下一篇:STM32 JTAG引角作為普通IO使用的方法

推薦閱讀最新更新時間:2025-04-23 18:10

STM32固件庫實現led亮滅閃爍和音頻發生器設計
概述 本文使用STM32F10X,軟件為Keil uVision5,仿真軟件Proteus 8 Professional 電路圖 實現代碼 學習筆記 8個led 電路圖 8個led亮滅實現代碼 實現代碼 //8??ledè?ááè??e #include stm32f10x.h int main() { GPIO_InitTypeDef star; //配置開啟GPIO時鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //設置GPIO輸出模式 //stm32F1提供了4種輸出模式(推挽輸出、開漏輸出 、復用推挽輸出 、復用開漏輸出)和3
[單片機]
<font color='red'>STM32</font><font color='red'>固件庫</font>實現led亮滅閃爍和音頻發生器設計
STM32F429 >> 3. STM32 固件庫
CMSIS 標準中最主要的為 CMSIS 核心層,它包括了: 內核函數層:其中包含用于訪問內核寄存器的名稱、地址定義; 設備外設訪問層:提供了片上的核外外設的地址和中斷定義。 庫目錄,文件簡介 在STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 文件中: Libraries:文件夾下是驅動庫的源代碼及啟動文件。 Project :文件夾下是用驅動庫寫的例子和工程模板。 Utilities:包含了基于 ST 官方實驗板的例程,以及第三方軟件庫,如 emwin 圖形軟件 庫、fatfs 文件系統。 MCD-ST Liberty…:庫文件的 License 說明。 Release_Note.html::
[單片機]
STM32F429 >> 3. <font color='red'>STM32</font> <font color='red'>固件庫</font>
stm32(庫函數)——新建基于固件庫的MDK5工程模板
這里根據STM32不完全手冊記錄建立庫函數版本的基于固件庫的MDK5工程模板。 1、我們每一次新建工程都會新建一個文件夾存放所有文件。 2、點擊MDK的菜單:Project— New Uvision Project,新建工程文件,然后將目錄定位在剛剛新建的文件夾之下,然后新建一個子文件夾重命名為USER(存放代碼工程等文件),當然也不一定,比如很多人也喜歡新建為project,這些都是因人而異了。 接下來就是選擇CPU界面,選擇我們使用的芯片型號。 這里我使用的是STM32F103ZET6,所以我就依次選擇STMicroelectronics— STM32F1 Series— STM32F103— STM32
[單片機]
<font color='red'>stm32</font>(庫函數)——新建基于<font color='red'>固件庫</font>的MDK5工程模板
GPIO輸出——固件庫點LED GPIO輸入——按鍵檢測
GPIO輸出—固件庫點亮LED燈 點亮led燈的原理:LED的陽極接高電平,陰極接IO口。要LED燈亮就要形成閉合回路,IO口接入低電平就能形成閉合回路,點亮LED 一個led驅動的三大功能: LED亮 LED滅 LED翻轉 新建led.c led.h 兩個文件存放GPIO初始化函數 (加入工程后記得添加路徑!!!) 編寫頭文件格式:(這樣寫是為了防止重復定義) #ifndef __LED__H #define __LED__H #endif 在頭文件中寫宏定義 宏定義是為了方便移植和方便自己有一些很繁瑣的變量不用多次去寫不易出錯 如何尋找固件庫的函數: 首先需要用到什么樣的函數就去哪里找,例如用到R
[單片機]
GPIO輸出——<font color='red'>固件庫</font>點LED GPIO輸入——按鍵檢測
STM32時鐘系統介紹與總結
時鐘樹: 1. HSI振蕩器時鐘 The HSI clock signal is generated from an internal 8 MHz RC Oscillator and can be used directly as a system clock or divided by 2 to be used as PLL input. The HSI RC oscillator has the advantage of providing a clock source at low cost (no external components). It also has a faster startup time than
[單片機]
stm32控制舵機
#include stm32f10x.h void GPIO_TimPWM(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //TIM_CH2 GPIOA_Pin_7輸出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50M
[單片機]
<font color='red'>stm32</font>控制舵機
基于STM32設計的智能灌溉控制系統
一、項目介紹 隨著現代農業的發展,人們對于水資源的合理利用越來越重視。而傳統的灌溉方式往往存在著浪費水資源、勞動力投入大、效率低等問題。因此,設計一款智能灌溉控制系統,可以實現對灌溉水量的精準控制,增加水資源利用率,提高農業生產效率,具有廣泛的應用前景。 當前文章介紹一款高性能的智能灌溉控制系統的開發過程,可自動采集電壓、電流、累計用水量,并根據用戶需要實現自動灌溉、定時灌溉、周期灌溉和手動灌溉等多種模式,同時具備中控室控制、手機短信、現場遙控及現場手動等多種方式控制功能。該系統可以對現場溫濕度限值進行設置和修改,并通過控制器或后臺監控系統完成灌溉起始時間、停止時間、噴灌時間等參數設置。系統顯示功能包括液晶屏以中文菜單方式顯示現場
[單片機]
基于<font color='red'>STM32</font>設計的智能灌溉控制系統
手把手教你基于RT-Thread Studio使用STM32單片機的PWM外設
一、使用說明 目前我使用的是STM32L475系列單片機,是ali當時在PDD 50塊錢賣的一個開發板,其他STM32單片機參考即可,這里會手把手教大家基于RTT Studio 來使用PWM。 二、創建工程 1.創建工程 首先大家打開RT-Thread Studio 來基于單片機創建工程。點擊左上角文件,新建 RT-Thread項目 Project name就是項目名稱,如果大家想自定義路徑保存,就取消掉缺省位置然后自定義路徑。 2.芯片參數設置 選擇基于芯片,下面的參數需要大家根據自己的主板來選擇,我這個板子 使用LPUART作為CMD輸出,單片機型號,下載器比如JLINK或者STLINK等等都需要自己適配開發板。
[單片機]
手把手教你基于RT-Thread Studio使用<font color='red'>STM32</font>單片機的PWM外設
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 韩城市| 洞口县| 石景山区| 政和县| 天峻县| 茶陵县| 沧州市| 洪江市| 麦盖提县| 珠海市| 旌德县| 大厂| 阿巴嘎旗| 上杭县| 宁安市| 六安市| 河南省| 武冈市| 盐城市| 寿光市| 宿州市| 长子县| 乡宁县| 白沙| 鄂托克前旗| 乳源| 福泉市| 巴南区| 濮阳市| 太湖县| 杭锦旗| 陇西县| 凤山县| 桐庐县| 延长县| 郸城县| 庆安县| 富川| 汝州市| 黄骅市| 古丈县|