Cortex‐M3和Cortex‐M0是否都能位带操作

最近在进行stm32l011f4的编程,想到stm32有位带操作,便想试一试,但是事与愿违,先贴下位带操作代码

Cortex‐M0的位带操作代码

//IO输出方向设置
#define SDA_IN()  {GPIOA->MODER&=0XFFF1FFFF;}        //PA_10设置成输入
#define SDA_OUT() {GPIOA->MODER&=0XFFF5FFFF;}       //PA_10设置成输出

// SDA = PA_10;SCL = PA_9
#define IIC_SCL    PAout(9)
#define IIC_SDA    PAout(10)
#define READ_SDA   PAin(10)

MODER寄存器为IO端口功能寄存器

Cortex‐M3的位带操作代码

//IO输入输出设置
#define SDA_IN()  {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}

//SDA=PB_11;SCL=PB_10	 
#define IIC_SCL    PBout(10) //SCL
#define IIC_SDA    PBout(11) //SDA	 
#define READ_SDA   PBin(11)  //SDA设为输入 

CRH为Cortex‐M3的端口功能寄存器

但是Cortex‐M0编译一直有问题,经过查阅资料,Cortex‐M0芯片不支持位带操作

Cortex‐M3存在端口映射区,所以支持位带操作。

 

Cortex‐M0不存在端口映射区,所以不支持位带操作。

 

所以同学们在编写Cortex‐M0的程序时,可以不考虑位带操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值