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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

32單片機位帶操作程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:302293 發表于 2024-12-2 13:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#ifndef __SYS_H
#define __SYS_H         
#include "hk32f030m.h"
#define u16 unsigned int                                                                                                                                    


#ifdef __cplusplus
extern "C" {
        #endif
        typedef struct
        {
                u16 bit0 : 1;
                u16 bit1 : 1;
                u16 bit2 : 1;
                u16 bit3 : 1;
                u16 bit4 : 1;
                u16 bit5 : 1;
                u16 bit6 : 1;
                u16 bit7 : 1;
                u16 bit8 : 1;
                u16 bit9 : 1;
                u16 bit10 : 1;
                u16 bit11 : 1;
                u16 bit12 : 1;
                u16 bit13 : 1;
                u16 bit14 : 1;
                u16 bit15 : 1;
        }Bits16_TypeDef;

        //IO口操作,只對單一的IO口!
        //確保n的值小于16!
        #define PAout(n)   ( ((Bits16_TypeDef *)(&(GPIOA->ODR)))->bit##n )
        #define PAin(n)    ( ( GPIOA->IDR&(1 << (n)) )>>n )  //輸入

        #define PBout(n)   ( ((Bits16_TypeDef *)(&(GPIOB->ODR)))->bit##n )
        #define PBin(n)    ( ( GPIOB->IDR&(1 << (n)) )>>n )  //輸入

        #define PCout(n)   ( ((Bits16_TypeDef *)(&(GPIOC->ODR)))->bit##n )
        #define PCin(n)    ( ( GPIOC->IDR&(1 << (n)) )>>n )  //輸入

        #define PDout(n)   ( ((Bits16_TypeDef *)(&(GPIOD->ODR)))->bit##n )
        #define PDin(n)    ( ( GPIOD->IDR&(1 << (n)) )>>n )  //輸入

        #ifdef __cplusplus
}
#endif


#endif

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

使用道具 舉報

沙發
ID:378108 發表于 2024-12-31 17:17 | 只看該作者
你這是 位帶?這不是域嗎?

評分

參與人數 1黑幣 +12 收起 理由
AAA_MCU + 12 哈哈哈哈

查看全部評分

回復

使用道具 舉報

板凳
ID:1064915 發表于 2025-4-10 08:35 | 只看該作者
位帶操作簡單的說,就是把每個比特膨脹為一個 32 位的字,當訪問這些字的時候就達到了訪問比特的目的,比如說 GPIO 的 ODR 寄存器有 32 個位,那么可以映射到 32 個地址上,我們去訪問這 32 個地址就達到訪問 32 個比特的目的。這樣我們往某個地址寫 1 就達到往對應比特位寫 1 的目的,同樣往某個地址寫 0 就達到往對應的比特位寫 0 的目的。

支持了位帶操作后,可以使用普通的加載、存儲指令來對單一的比特進行讀寫。在CM3中,有兩個區中實現了位帶。其中一個是 SRAM 區的最低 1MB 范圍,第二個則是片內外設區的最低 1MB 范圍。這兩個區中的地址除了可以像普通的 RAM 一樣使用外,它們還都有自
己的“位帶別名區”,位帶別名區把每個比特膨脹成一個 32 位的字。當你通過位帶別名區訪問這些字時,就可以達到訪問原始比特的目的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成人一区二区 | 午夜在线 | 亚洲欧美综合网 | 国产1区 | 久久99精品久久久 | 毛片一级片 | 亚洲欧洲一区二区 | 成人精品一区二区 | 国产日韩欧美精品一区二区 | 日韩精品在线看 | 91.色 | 欧美日韩在线免费观看 | 国产精品一区在线观看你懂的 | 999精品网 | 欧美日韩亚洲国产 | 久久精品国产一区二区电影 | 亚洲国产黄 | 国产中文字幕在线 | 国产一区二区精品在线 | 在线婷婷 | 日韩国产在线 | 欧美日韩在线视频观看 | 欧美日韩在线一区二区 | 欧美一区视频 | 在线免费激情视频 | 国产一级在线观看 | 国产96色在线 | 武道仙尊动漫在线观看 | 国产精品99久久久久久动医院 | 国产激情一区二区三区 | 亚洲天堂免费在线 | 欧美簧片 | 中文字幕免费 | 一区二区三区视频在线免费观看 | 欧美精品在线免费观看 | 亚洲区一区二 | 免费国产一区 | av黄色在线播放 | 中文字幕视频一区 | 欧美激情久久久 | 亚洲精品乱码久久久久久按摩观 |