国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

C語言操作寄存器和函數指針

來源: 責編: 時間:2023-09-18 21:41:56 441觀看
導讀typedef函數指針類型#include <stdio.h>//函數指針類型別名/* * int 函數返回值 * (int,int)函數參數,兩個參數int,int * *PTP_TO_FUNC函數指針,指向函數的指針*/typedef int (*PTR_TO_FUNC)(int, int);/* 為數組定義別

AdC28資訊網——每日最新資訊28at.com

typedef函數指針類型

#include <stdio.h>//函數指針類型別名/*	* int 函數返回值	* (int,int)函數參數,兩個參數int,int	* *PTP_TO_FUNC函數指針,指向函數的指針*/typedef int (*PTR_TO_FUNC)(int, int);/*	為數組定義別名與函數指針類型別名類似	[4]數組各屬	PTR_TO_ARR指向數組的名,其數組個數與參數個數相同	在使用是當成一種類型,在為其賦值時需要重新為其添加值*/typedef char(*PTR_TO_ARR)[10]; //實現函數體int max(int x, int y){	return x > y ? x : y;}int main(void){	//定義數組,等待指向	char str[3][10] = {		"嘿嘿",		"信息科技",		"有限公司"	};	// PTR_TO_ARR結構體指針,仍需要定義別名	PTR_TO_ARR arr = str[1];	// 指向函數	PTR_TO_FUNC func = max;	printf("max(6,3): %d/n", (*func)(6, 3));	printf("str[1]: %s/n", (*arr)); //輸出信息科技	return0;}

寄存器

有限存貯容量的高速存貯部件 。寄存器的功能是存儲二進制代碼,它是由具有存儲功能的觸發器組合起來構成的。一個觸發器可以存儲1位二進制代碼,故存放n位二進制代碼的寄存器,需要n個觸發器來構成。AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

寄存器分類

基本寄存器 :只能并行送入數據,也只能并行輸出。AdC28資訊網——每日最新資訊28at.com

移位寄存器中的數據可以在移位脈沖作用下依次逐位右移或左移,數據既可以并行輸入,并行輸出,也可以串行輸入,串行輸出,還可以并行輸入,串行輸出或串行輸入,并行輸出,靈活,用途廣泛。AdC28資訊網——每日最新資訊28at.com

使用

在嵌入式編程中,常常需要對一些寄存器進行配置,有的情況下需要改變一1個字節中的某一位或者幾位,但是又不想改變其它位原有的值,就可以使用按位運算符進行操作。AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

假如我們只需要設置第0位bit0的值為1時, 要保持其它位  不發生變化。AdC28資訊網——每日最新資訊28at.com

TEST = 0x01

此方式如果高7位沒有使用,就不會有影響,但是如果高7位正在被使用,那么就會發生錯誤。AdC28資訊網——每日最新資訊28at.com

  • 與運算 :對于二進制位操作,不管原值是0還是1,它跟0進行&與運算,得到的結果都是 0,而和1進行&運算,將保持原來的值不變
  • 或運算 :不管該位原來的值是0還是1,它跟1進行 |運算,得到的結果都是1,而跟0運算,將保持原來的值不變。`

可以使用或運算:AdC28資訊網——每日最新資訊28at.com

TEST = TEST | 0x01;// 在實際中常用TEST |= 0x01;

給Test的低4位清 0 ,高四位保持不變:AdC28資訊網——每日最新資訊28at.com

TEST &= 0xF0;   //使用十六進制

此方法在單片機中經常使用,先對需要設置的位用 &操作符進行清零操作,然后用 | 操作符設置值,改變GPIOA的狀態,先對寄存器的值進行清零操作,然后根據需要設置的值進行 | 或運算:AdC28資訊網——每日最新資訊28at.com

GPIOA->CRL &= 0XFFFFFF0F; // 將第4~7位清零GPIOA->CRL &= 0X00000040; //設置相應的值,不改變其他位的值

移位提高可讀性

GPIOx->BSRR = (((uint32_t)0x01) << pinpox); //將0x01 左移pinpox位,

通過左移而不是直接設置一個固定的值 :為了提高代碼的可讀性,直接就知道修改了第幾位:AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

GPIOA->ODR |= 1<<5; //PA.5輸出高,其它位不變

設置某位為0

簡單操作:AdC28資訊網——每日最新資訊28at.com

TIMx->SR = 0xFFF7; //此方法仍然影響可讀性,

庫函數:AdC28資訊網——每日最新資訊28at.com

TIMx -> SR = (uint16_t)~TIM_FLAG;

TIM_FLAG定義

設置SR的第三位為 0 時即可設置為AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

TIMx->SR = (uint16_t)~TIM_FLAG_CC3;
#define TIM_FLAG_Update  ((uint16_t)0x0001)#define TIM_FLAG_CC1     ((uint16_t)0x0002)#define TIM_FLAG_CC2     ((uint16_t)0x0004)#define TIM_FLAG_CC3     ((uint16_t)0x0008)#define TIM_FLAG_CC4     ((int16_t)0x0010)#define TIM_FLAG_COM     ((uint16_t)0x0020)#define TIM_FLAG_Trigger ((uint16_t)0x0040)#define TIM_FLAG_Break   ((uint16_t)0x0080)#define TIM_FLAG_CC1OF   ((uint16_t)0x0200)#define TIM_FLAG_CC2OF   ((uint16_t)0x0400)#define TIM_FLAG_CC3OF   ((uint16_t)0x0800)#define TIM_FLAG_CC4OF   ((uint16_t)0x1000)

位域

位域:或稱之為位段,英文表達式 Bit field 是一種數據結構,可以把數據以位元的形式緊湊的存儲,并允許程序員對此結構進行位元進行操作。AdC28資訊網——每日最新資訊28at.com

優勢:AdC28資訊網——每日最新資訊28at.com

  • 可以使數據單元節省存儲空間
  • 位段可以很方便地訪問一個整數值的部分內容從而簡化程序源代碼。

位域可以分為兩大類,一個是結構體位域,一個是共同體位域,由于共同體和結構體兩者在定義上的形式都是相同的,從位域的定義形式上看,兩者也基本都是相同的。AdC28資訊網——每日最新資訊28at.com

struct 位域結構體{    類型說明符 位域名 : 長度;}結構體變量名;// 結構體位域struct example0{    unsignedchar x : 3; //冒號后面的證書指定了該位段所占用的位的數目。    unsignedchar y : 2;    unsignedchar z : 1;}ex0_t;// 共同體位域union example1{    unsignedchar x : 3;    unsignedchar y : 2;    unsignedchar z : 1;}ex1_u;

位域大小原則 :整個結構體位域的總大小為最寬基本類型成員大小的整數倍。AdC28資訊網——每日最新資訊28at.com

位域基本都使用無符號類型。AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

位域注意

  • 結構體位域成員不能使用取址操作
  • 結構體成員不能夠使用static修飾
  • 結構體位域成員不能使用數組。

不同的處理器,不同的編譯器對位域的影響,位域雖然能夠以位的形式操作數據,但是也被人們告知要慎重使用,原因在于不同的處理器結構,不同的編譯器對于位域的一些特征會產生不同的結果。AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

處理器大端模式,小端模式的處理器也會對下面的結構體位域產生不一樣的存儲方式。AdC28資訊網——每日最新資訊28at.com

不同的編譯器,結構體位域成員不同類型,不同的編譯器對于位域會有不同的結果AdC28資訊網——每日最新資訊28at.com

當成員大小之和超過一個基本存儲空間時,不同的編譯器也會有不同的處理方式。AdC28資訊網——每日最新資訊28at.com

typedefunion{    unsignedchar Byte;    struct    {        unsignedchar bit012 : 3;        unsignedchar bit34  : 2;        unsignedchar bit5   : 1;        unsignedchar bit6   : 1;        unsignedchar bit7   : 1;    }bits;}registerType;

存儲0x0000 8000定義一個指針指向地址:AdC28資訊網——每日最新資訊28at.com

AdC28資訊網——每日最新資訊28at.com

registerType *pReg = (register*)0x00008000;// 使用位域寄存器進行賦值pReg->bits.bit5 = 1;pReg->bits.bit012 = 7;

本文鏈接:http://m.rrqrq.com/showinfo-26-10474-0.htmlC語言操作寄存器和函數指針

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 利用開放接口,如何一步步打造自己的獨特圖片網站

下一篇: 優化自動化接口測試:利用鉤子函數增強HTTP請求處理

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
av成人国产| 国产亚洲人成网站| 亚洲一区久久| av成人天堂| 国产欧美日韩一区二区三区| aa国产精品| 亚洲一区日本| 91国产精品成人| 欧美日韩一区二区三区在线看| 欧洲国内综合视频| 欧美精品在线视频| 日韩欧美的一区| 国产日韩精品一区二区三区| 久久久av毛片精品| 亚洲欧洲精品一区二区三区| 亚洲欧美日韩成人高清在线一区| 一区二区三区在线视频播放| 亚洲一区二区三区四区中文字幕| 性做久久久久久久久| 男男视频亚洲欧美| 国产不卡在线播放| 午夜日韩在线| 亚洲资源av| 欧美精品高清视频| 久久在线免费观看| 亚洲码国产岛国毛片在线| 午夜影院在线观看欧美| 精品一区二区三区视频在线观看| 国产99久久久国产精品潘金网站| 91在线视频播放地址| 最新日韩av| 欧美在线综合视频| 久久久综合激的五月天| 亚洲色图另类专区| 麻豆久久一区二区| 欧美成熟视频| 久久一二三区| 2023国产精品| 亚洲高清免费观看高清完整版在线观看 | 欧美特黄一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 一区二区三区资源| 国产美女av一区二区三区| 欧美三区视频| 欧美色窝79yyyycom| 日本一区二区免费在线| 日本一区中文字幕| 97精品超碰一区二区三区| 香蕉久久国产| 久久久一区二区| 男女激情视频一区| 亚洲亚洲精品三区日韩精品在线视频| 色综合久久天天| 国产日产亚洲精品系列| 免费的成人av| 亚洲经典在线| 日韩美女天天操| 香港成人在线视频| 国产精品vip| 欧美精品九九99久久| 亚洲小少妇裸体bbw| 99riav久久精品riav| 欧美亚洲一区二区在线观看| 自拍偷拍欧美激情| 国产不卡一区视频| 久久综合九九| 亚洲视频小说图片| 91日韩在线专区| 在线电影欧美成精品| 亚洲国产视频网站| 在线成人h网| 久久久久久亚洲综合影院红桃 | 色婷婷久久久综合中文字幕| 久久这里只有精品视频网| 欧美96一区二区免费视频| 亚洲精品色图| 国产精品网站在线| 成人激情视频网站| 欧美亚一区二区| 亚洲成人动漫在线免费观看| 国产一区二区三区无遮挡 | 亚洲综合无码一区二区| 色综合久久中文综合久久97| 欧美日本国产视频| 捆绑紧缚一区二区三区视频| 亚洲在线播放| 亚洲丝袜精品丝袜在线| 91香蕉视频mp4| www成人在线观看| 高清视频一区二区| 日韩一区二区三区视频| 精品一区二区三区在线观看国产 | 欧美日韩免费电影| 九九九久久久精品| 欧美精品粉嫩高潮一区二区| 免费在线观看一区二区三区| 久久久99爱| 日韩成人伦理电影在线观看| 久久久成人网| 蜜臀久久久久久久| 欧美最猛性xxxxx直播| 日本怡春院一区二区| 日本福利一区二区| 精品一区二区免费在线观看| 欧美日韩精品综合在线| 国产一区亚洲一区| 日韩视频中午一区| 99精品欧美一区二区三区小说| 26uuu久久天堂性欧美| 欧美a级在线| 亚洲色图欧洲色图婷婷| 性欧美xxxx大乳国产app| 日韩在线一区二区三区| 欧美日韩免费观看一区二区三区 | 亚洲三级色网| 亚洲国产cao| 欧美日韩综合在线| 国产精品小仙女| 久久精品欧美日韩精品| 欧美深夜福利| 亚洲国产一区二区a毛片| 欧美无乱码久久久免费午夜一区 | 国产精品羞羞答答xxdd| 欧美精品一区二| 亚洲精品欧美精品| 日韩精品三区四区| 日韩一区二区在线观看| 欧美在线视频二区| 亚洲精品日产精品乱码不卡| 久久一区二区精品| 成人性生交大片免费看视频在线| 久久免费电影网| 国产精品一二| 国产美女精品人人做人人爽| 亚洲国产精品t66y| 久色成人在线| aaa国产一区| 亚洲成人黄色小说| 精品免费日韩av| 亚洲精品孕妇| 精久久久久久| 五月综合激情网| 亚洲精品一区二区三区精华液| 亚洲视频大全| 国产成人精品亚洲777人妖| 国产精品成人网| 欧美专区日韩专区| 欧美先锋影音| 精品一区二区精品| 一区在线观看免费| 在线成人高清不卡| 国产日韩免费| 99久久免费国产| 午夜久久久久久| 国产无人区一区二区三区| 香港久久久电影| 97se亚洲国产综合自在线不卡| 午夜精品久久久久久久99水蜜桃 | 成人黄色电影在线 | 五月激情综合色| 国产精品美女久久久久aⅴ国产馆| 欧美色中文字幕| 亚洲日本成人| www.亚洲免费av| 久久爱www久久做| 尤物视频一区二区| 久久久精品免费网站| 欧美私模裸体表演在线观看| 亚洲高清电影| 91女厕偷拍女厕偷拍高清| 久草精品在线观看| 亚洲国产乱码最新视频| 欧美高清在线视频| 欧美tickling挠脚心丨vk| 在线中文字幕一区二区| 亚洲色诱最新| 国产精品啊啊啊| 成人小视频在线| 国精品**一区二区三区在线蜜桃| 亚洲一区二区在线免费看| 国产精品成人在线观看| 久久精品人人做人人爽人人| 欧美一级欧美一级在线播放| 91电影在线观看| 久久一区二区精品| 亚洲综合二区| 亚洲最新在线| 亚洲久久视频| 亚洲三级视频| 亚洲国产日韩在线| 国模 一区 二区 三区| 欧美尤物一区| 色综合欧美在线| 91丨国产丨九色丨pron| www.成人网.com| 91伊人久久大香线蕉| 97久久精品人人做人人爽| 不卡的电视剧免费网站有什么| 国产剧情av麻豆香蕉精品| 国产主播一区二区三区|