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

关于STM32位域的操作方法-

[复制链接]
shenxiaolin_mai 发布时间:2018-12-13 09:49
本帖最后由 xiaoshen-372360 于 2018-12-13 09:51 编辑 1 W3 E7 q  m0 ~! d- Y' i$ W+ m

1 {1 d' R4 O! [" ^, Y) t2 f8 {. k+ K3 B' `7 x% t) M
昨天在群里讨论发现了关于STM32 的位域操作,发现特别奇妙,很舒服,在进行IO操作的时候会免去与或非的操作,直接操作一个位就可以了,很方便,尤其是在做IO设备的时候,很容易实现,定义起来也很方便,这是写的一个例子,大家可以参考一下。
( v) n$ z+ A; m$ O
- ^9 o* G/ m0 O* d9 w5 M
2 z0 X. ?! S" U) _
  1. typedef struct     a& @- }' B- J2 K; ]
  2. {
    3 o# \' R. R2 [4 ], b
  3. unsigned int a:1;      
    2 Z3 @+ I  |4 s( a8 S$ |! c2 j
  4. unsigned int b:1;
    ; x% J2 T, \# `; C- N
  5. unsigned int c:1;
    * ^, d- x) E; D+ [, Z
  6. }demo;% w3 S0 |) y3 k* i0 `+ v* G) t
  7.         int i=0;
    . `; x  s( H3 e+ S6 o/ I1 v3 i
  8. union
    / c; c4 A" Q& T. `& U  I. B
  9. { unsigned int Data;& F# C) w- y" r" s. ]0 \: c( i9 ^8 X
  10.   demo UN_Data;
    2 K- t) X0 w& X! s! O' V5 B% l. w
  11. }Tst_Data;
    $ c* @( k( m6 z1 G6 X

  12. . \* s" t3 [" L! H1 Z) k
  13. int main(void)$ L8 g/ y2 \$ e
  14. { + b& g: _  n+ Y) k. y$ c
  15.         i=sizeof(demo);
    6 i6 t) D6 g+ c8 y, V/ B2 Q
  16. ( p$ n4 e1 E' w7 p
  17.         Tst_Data.UN_Data.a=1;
    6 N- I5 G; Z' w- j
  18.         Tst_Data.UN_Data.b=1;, i8 r! B& S5 Q
  19.         Tst_Data.UN_Data.c=1;
    2 v! e9 i& v* e* R
  20.         Tst_Data.UN_Data.b=0;: U' {: E9 ]* N) S6 s
  21.   for( ;; );7 G' {- y6 y  [3 Z1 ~
  22. }
复制代码
1.png
* H4 B7 w6 X4 J: I% b1 H* u. _
+ J9 M  A5 o0 U% d' d, B% @
收藏 评论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
  B; N' A  d$ f- w好东西就是用来共享的,点赞,点赞
' P0 |' _% e) W
谢谢支持,哈哈哈
tanic 回答时间:2018-12-14 09:26:22
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以
shenxiaolin_mai 回答时间:2018-12-14 19:10:07
tanic 发表于 2018-12-14 09:26
8 a( u, M" Y0 v: |2 `0 g应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以 ...

2 b/ j7 c$ s- F- t3 F6 k寄存器的话在群里有人试过了,是可以的,优化等级还没试过
andey 回答时间:2018-12-15 08:22:21
提示: 作者被禁止或删除 内容自动屏蔽
shenxiaolin_mai 回答时间:2018-12-15 14:11:12
andeyqi 发表于 2018-12-15 08:22" o/ ^/ g# ]% n, T& |
顶一个

- [- ~8 z0 G6 T/ J3 `欢迎欢迎

所属标签

相似分享

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