你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32位域的操作方法-

[复制链接]
xiaoshen-372360 发布时间:2018-12-13 09:49
本帖最后由 xiaoshen-372360 于 2018-12-13 09:51 编辑


昨天在群里讨论发现了关于STM32 的位域操作,发现特别奇妙,很舒服,在进行IO操作的时候会免去与或非的操作,直接操作一个位就可以了,很方便,尤其是在做IO设备的时候,很容易实现,定义起来也很方便,这是写的一个例子,大家可以参考一下。


  1. typedef struct   
  2. {
  3. unsigned int a:1;      
  4. unsigned int b:1;
  5. unsigned int c:1;
  6. }demo;
  7.         int i=0;
  8. union
  9. { unsigned int Data;
  10.   demo UN_Data;
  11. }Tst_Data;

  12. int main(void)
  13. {
  14.         i=sizeof(demo);

  15.         Tst_Data.UN_Data.a=1;
  16.         Tst_Data.UN_Data.b=1;
  17.         Tst_Data.UN_Data.c=1;
  18.         Tst_Data.UN_Data.b=0;
  19.   for( ;; );
  20. }
复制代码
1.png

收藏 评论6 发布时间:2018-12-13 09:49

举报

6个回答
zccdyfw 回答时间:2018-12-13 16:46:01
好东西就是用来共享的,点赞,点赞
xiaoshen-372360 回答时间:2018-12-14 09:01:20
zccdyfw 发表于 2018-12-13 16:46
好东西就是用来共享的,点赞,点赞

谢谢支持,哈哈哈
tanic 回答时间:2018-12-14 09:26:22
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以
xiaoshen-372360 回答时间:2018-12-14 19:10:07
tanic 发表于 2018-12-14 09:26
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以 ...

寄存器的话在群里有人试过了,是可以的,优化等级还没试过
andeyqi 回答时间:2018-12-15 08:22:21
顶一个   
xiaoshen-372360 回答时间:2018-12-15 14:11:12

欢迎欢迎

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版