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

关于STM32位域的操作方法-

[复制链接]
shenxiaolin_mai 发布时间:2018-12-13 09:49
本帖最后由 xiaoshen-372360 于 2018-12-13 09:51 编辑
4 D5 E) x9 J% D! R; f+ ~1 Y+ {! u
6 c5 V7 x: t" H2 @; Y7 B8 B  y4 ~# y9 F( F2 v
昨天在群里讨论发现了关于STM32 的位域操作,发现特别奇妙,很舒服,在进行IO操作的时候会免去与或非的操作,直接操作一个位就可以了,很方便,尤其是在做IO设备的时候,很容易实现,定义起来也很方便,这是写的一个例子,大家可以参考一下。$ d- Z$ R: m& M2 j6 H4 Q

& Y' s3 B; M  i* s  m# P: U4 ]: ~  `
  1. typedef struct   $ ]7 a8 Z0 |+ r. \$ h  S
  2. { / ?' {3 c! w4 e6 ~% H$ b
  3. unsigned int a:1;      
    ' s7 B  `+ I6 v, D( N& j( W
  4. unsigned int b:1;
    5 X1 a! T: z( ~( o6 ^# r
  5. unsigned int c:1;. d5 ~- {! ^9 c" l8 N+ x# r, i
  6. }demo;& I$ o+ S7 T# x9 b) ~  c
  7.         int i=0;) k' N% s8 `2 G% u' A- U4 A* k0 |
  8. union & R' S( F" P! P
  9. { unsigned int Data;
    7 |# g, Y( f0 |* t9 _! X2 O, @
  10.   demo UN_Data;- L3 A. x* X* i5 @
  11. }Tst_Data;8 E1 H# B% J% X9 S! J) e

  12. 7 o! k, L) b% o+ M1 J
  13. int main(void)
    8 L* a! u3 @* q  t. s
  14. {
    # C5 W. r$ A: m% ^
  15.         i=sizeof(demo);' v  @8 y! G: c
  16. 0 `1 A. y; e7 q) Z  s% F+ \
  17.         Tst_Data.UN_Data.a=1;$ H1 ?' A" J! |
  18.         Tst_Data.UN_Data.b=1;% u$ U# l& T) Y  Z& X
  19.         Tst_Data.UN_Data.c=1;
    ) j0 ^( F* M2 C
  20.         Tst_Data.UN_Data.b=0;0 W+ q; B5 Z% ?2 ~$ P  Y
  21.   for( ;; );3 t8 s& \, ]' V" U& F: ^$ Q/ t
  22. }
复制代码
1.png
( ?& [9 j. ~4 M2 w  I- n) j* J# M+ r" e% y* ?
赞 收藏 评论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
; E$ E! B! Z- ~, s# u3 ^好东西就是用来共享的,点赞,点赞
; C$ X8 \6 }! E$ s* \4 |5 n
谢谢支持,哈哈哈
tanic 回答时间:2018-12-14 09:26:22
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以
shenxiaolin_mai 回答时间:2018-12-14 19:10:07
tanic 发表于 2018-12-14 09:269 }' b3 S! J4 h9 \
应当是编译器帮你完成了或与非的工作,要多测试看看优化等级是否有影响,还有对寄存器这样操作是否可以 ...
) g0 v8 D" n# c& c3 w3 q  ?
寄存器的话在群里有人试过了,是可以的,优化等级还没试过
andey 回答时间:2018-12-15 08:22:21
提示: 作者被禁止或删除 内容自动屏蔽
shenxiaolin_mai 回答时间:2018-12-15 14:11:12
andeyqi 发表于 2018-12-15 08:22% N% h7 J8 w6 t9 T' E
顶一个

$ Q' ?  `& u8 b! W4 o欢迎欢迎
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版