中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

嵌(qian)入式C語言寄存器操作

一、常用寄存器操作

/* 設置位 (置1)	*/
*pReg |= (1 << bit_position);

/* 清除位 (置0) */
*pReg &= ~(1 << bit_position);

/* 取反 */
*pReg ^= (1 << bit_position);

二、寄存器寫操作

如下所示為配置Pc13引腳為輸出模式的錯誤示例

/* 配置為通用輸出 
 * 00:Input mode
 * 01:General purpose output mode
 * 10:Alternate function mode
 * 11:Analog mode(reset state)
*/
pReg = (uint32_t *)(0x48000800 + 0x00);
*pReg |= 0x01 << 26;

默認配置為為11,上(shang)述操作只修改了(le)第二位,第一位未(wei)修改,導致配置錯(cuo)誤,正確配置如下:

/* 配置為通用輸出 */
pReg = (uint32_t *)(0x48000800 + 0x00);
*pReg &= ~(0x03 << 26);
*pReg |= 0x01 << 26;

上述配置仍存在一定的安全問題,在對寄存器進行操作時,我們一定要遵守:讀->改->寫的步驟:

/ 單次讀-修改-寫保證原子性
uint32_t temp = *pReg;
temp &= ~(0x03 << 26);     // 清除MODER13區域
temp |= 0x01 << 26;  // 設為輸出模式
*pReg = temp;
posted @ 2025-11-02 22:27  比特向陽  閱讀(13)  評論(0)    收藏  舉報