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

关于STM32位域的操作方法-

[复制链接]
shenxiaolin_mai 发布时间:2018-12-13 09:49
本帖最后由 xiaoshen-372360 于 2018-12-13 09:51 编辑
/ E( B, W% X5 n. ~/ m% O
0 W' g1 g) b+ I. m. l/ h  _: p7 ^( X2 `5 m) N. D2 N9 l: k
昨天在群里讨论发现了关于STM32 的位域操作,发现特别奇妙,很舒服,在进行IO操作的时候会免去与或非的操作,直接操作一个位就可以了,很方便,尤其是在做IO设备的时候,很容易实现,定义起来也很方便,这是写的一个例子,大家可以参考一下。
* }5 X% X8 g8 a8 n% ~6 D9 q/ W+ j; {" V) F4 l. M

  Z4 m; B( e6 {, O
  1. typedef struct   
    ) f& W3 a+ R' q+ n0 p4 Z3 x' d
  2. { 2 y2 M8 a% L- A4 }
  3. unsigned int a:1;      
    + s& {6 F% B9 Z
  4. unsigned int b:1;2 D. t. ^) o1 j. U
  5. unsigned int c:1;
    9 A' @5 j6 a0 Y7 a/ [' h* j
  6. }demo;3 I) e- M3 T; p
  7.         int i=0;7 O7 _; ^- r" \" ]
  8. union " g- T: M/ O$ x1 D/ l, g
  9. { unsigned int Data;
    0 c6 j3 L: o" c$ N, F1 n) S
  10.   demo UN_Data;
    : \  q1 l  X* K# [5 z8 h
  11. }Tst_Data;& [: h, I# t6 [

  12. , @; i, ]. b) I6 Q) a* ~6 j
  13. int main(void)
    ; x- X: h( ?( u' ]3 N& ^
  14. { $ v& d* G7 V; k( ^0 ?0 i$ R4 Q, p
  15.         i=sizeof(demo);
    0 H: k& t$ _1 J1 p. ]+ A& P

  16. 7 l4 \( M: ~+ T' |4 G' f# d
  17.         Tst_Data.UN_Data.a=1;
    : `/ n9 F6 n1 c6 ^, s" d$ n
  18.         Tst_Data.UN_Data.b=1;
    ! r4 z6 O* r. ^% S% t4 M
  19.         Tst_Data.UN_Data.c=1;
    & ~$ r" @9 x! d/ h
  20.         Tst_Data.UN_Data.b=0;6 x( U$ L% u: {  [9 q/ Z. q" d
  21.   for( ;; );+ m% V+ D! Z  l% R! j
  22. }
复制代码
1.png % n9 \1 t4 K* N' x
8 T9 _' ?7 D1 D' L$ z- M
收藏 评论6 发布时间:2018-12-13 09:49

举报

6个回答
zccdyfw 回答时间:2018-12-13 16:46:01
好东西就是用来共享的,点赞,点赞
shenxiaolin_mai 回答时间:2018-12-14 09:01:20
zccdyfw 发表于 2018-12-13 16:46, x* @/ l# o- v4 ]7 G1 q4 f8 J5 h7 I
好东西就是用来共享的,点赞,点赞
* Z# j+ O( o/ z
谢谢支持,哈哈哈
tanic 回答时间:2018-12-14 09:26:22
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以
shenxiaolin_mai 回答时间:2018-12-14 19:10:07
tanic 发表于 2018-12-14 09:26
, p. p- L/ `% W$ |$ J. |0 C% T应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以 ...
* ^  w: O6 }+ j. e. j. A( u  }
寄存器的话在群里有人试过了,是可以的,优化等级还没试过
andey 回答时间:2018-12-15 08:22:21
提示: 作者被禁止或删除 内容自动屏蔽
shenxiaolin_mai 回答时间:2018-12-15 14:11:12
andeyqi 发表于 2018-12-15 08:22
6 _- a; l3 n5 W/ V- M$ I顶一个

* J9 R8 g. x" C: L( L- Q1 e  ?+ m: V欢迎欢迎

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版