请选择 进入手机版 | 继续访问电脑版

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

关于STM32位域的操作方法-

[复制链接]
shenxiaolin_mai 发布时间:2018-12-13 09:49
本帖最后由 xiaoshen-372360 于 2018-12-13 09:51 编辑
4 e. k" V: p# R0 k( K$ R" ~0 D, i& R7 y0 b

; G( B& f3 h  ^1 I昨天在群里讨论发现了关于STM32 的位域操作,发现特别奇妙,很舒服,在进行IO操作的时候会免去与或非的操作,直接操作一个位就可以了,很方便,尤其是在做IO设备的时候,很容易实现,定义起来也很方便,这是写的一个例子,大家可以参考一下。
# U$ ~. O! `  H: D# Y4 N; `) k) {9 Y/ w% C# Z' Y

3 y; H$ r  p* n2 D2 S! _$ ~1 X- p1 k
  1. typedef struct   
    : S6 S( j" G6 K
  2. { - m6 Z1 z. `# T/ m6 H5 u! V) Z* L" C, B
  3. unsigned int a:1;      
    0 {1 ?& Q2 i* m$ }! _/ g. u
  4. unsigned int b:1;$ c& j1 a" A5 o9 S2 y# S9 o
  5. unsigned int c:1;& s- d  E+ @. ^! o+ t: v
  6. }demo;8 J8 q; W! w1 {% c6 _7 N
  7.         int i=0;
    . f2 a) l  f' k# A
  8. union & {9 w2 A( N" G) t
  9. { unsigned int Data;  g" S6 C  ^! ]4 z7 P# |/ V
  10.   demo UN_Data;
      K# x" D& M0 k% y
  11. }Tst_Data;' n$ u9 C: q, r3 b  o! f5 k; ^( e

  12. % `' M5 @( K( _1 H/ m9 [: d* ~
  13. int main(void); z! J8 M' a; H8 i
  14. {   S+ ^6 @' L2 J" D1 u; _. v- q2 X
  15.         i=sizeof(demo);, o, g' d" Z5 z' }* o+ v, a

  16. 5 w$ A2 J4 H; u
  17.         Tst_Data.UN_Data.a=1;
    8 u/ b! m) X; I/ o2 E
  18.         Tst_Data.UN_Data.b=1;
    : D/ E) D' x5 X4 N1 H- u
  19.         Tst_Data.UN_Data.c=1;
    5 F8 @; U) r) H7 r
  20.         Tst_Data.UN_Data.b=0;$ i. W9 }: F/ \9 c5 X
  21.   for( ;; );
    4 R: O9 ~4 h1 L7 V5 X7 I
  22. }
复制代码
1.png
* f$ G/ |% Q: j* J* Q9 I  b0 W
- X! _* W6 o; `
收藏 评论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
! ^/ F& x7 ~# Y6 G6 E) E好东西就是用来共享的,点赞,点赞

6 O7 s1 y' v- |$ N* Y$ B" ?谢谢支持,哈哈哈
tanic 回答时间:2018-12-14 09:26:22
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以
shenxiaolin_mai 回答时间:2018-12-14 19:10:07
tanic 发表于 2018-12-14 09:266 N& P# O) h4 r+ j2 J( i+ ^" g
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以 ...

5 ^# b6 U# m6 f/ A/ m% R寄存器的话在群里有人试过了,是可以的,优化等级还没试过
andey 回答时间:2018-12-15 08:22:21
提示: 作者被禁止或删除 内容自动屏蔽
shenxiaolin_mai 回答时间:2018-12-15 14:11:12
andeyqi 发表于 2018-12-15 08:221 K7 K$ g1 t+ K- X; e/ b: J
顶一个

" z5 O5 c* s% u5 U. K欢迎欢迎

所属标签

相似分享

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