打印

STM32中如何像51中那样sbit定义呢

[复制链接]
2476|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
merry_zsp|  楼主 | 2016-5-26 22:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
hello牟| | 2016-5-27 09:49 | 只看该作者
#define set1 GPIOE -> BSRR = 你要的位;

使用特权

评论回复
板凳
oayzw| | 2016-5-27 10:15 | 只看该作者
请在手册中搜索bitband

使用特权

评论回复
地板
大白农| | 2016-5-28 14:57 | 只看该作者
STM8 中可以用_Bool,不知道STM32中是否可以

使用特权

评论回复
5
nobleliom| | 2016-5-28 21:10 | 只看该作者
通过未定义,也许可以,不过没必要了,直接用u8就可以了

使用特权

评论回复
6
花落辞殇| | 2016-5-29 15:56 | 只看该作者
建议楼主不要用bit   stm32空间这么大没必要这么搞     而且移植不方便

使用特权

评论回复
7
jp_chen| | 2016-5-29 23:16 | 只看该作者
typedef enum {FALSE = 0, TRUE = !FALSE} BOOL;
#define bool BOOL
#define false FALSE
#define true TRUE
加上这句就可以用了

使用特权

评论回复
8
16号哨兵| | 2016-5-31 18:44 | 只看该作者
非要用可以自己把u8的8位弄成8个位来用
这样就能节省了
不过在置位清零的时候会有点麻烦

使用特权

评论回复
9
magicoctoy| | 2016-6-8 08:25 | 只看该作者
楼主测试下这段代码


#ifndef   _BIT_  
#define   _BIT_
   
#define   BIT(n)    (1<<(n))  
#define   bit(n)    BIT(n)
#define   bit1(n)   BIT(n)
#define   BIT1(n)   BIT(n)   
#define   BIT0(n)   (~(BIT(n)))
#define   bit0(n)   BIT0(n)

#define         enBit(val,n)    ((val)|=(bit1(n)))
#define         clBit(val,n)    ((val)&=(bit0(n)))

#endif



==================
vc6.0测试


#include<stdio.h>
#include<stdlib.h>

#ifndef   _BIT_  
#define   _BIT_
   
#define   BIT(n)    (1<<(n))  
#define   bit(n)    BIT(n)
#define   bit1(n)   BIT(n)
#define   BIT1(n)   BIT(n)   
#define   BIT0(n)   (~(BIT(n)))
#define   bit0(n)   BIT0(n)

#define         enBit(val,n)    ((val)|=(bit1(n)))
#define         clBit(val,n)    ((val)&=(bit0(n)))

#endif  

void main()
{
unsigned int i=0xfffff;
unsigned int a=i;
char cha[32];

a &= bit0(3)&bit0(0);

itoa(a,cha,2);
printf("%032s\n",cha);

    enBit(a,30);

itoa(a,cha,2);
printf("%032s\n",cha);

clBit(a,13);

itoa(a,cha,2);
printf("%032s\n",cha);

a |= bit(25) | bit(23);
itoa(a,cha,2);
  printf("%032s\n",cha);
}

00000000000011111111111111110110
01000000000011111111111111110110
01000000000011111101111111110110
01000010100011111101111111110110

Press any key to continue
32位以内应该没问题, 更大的没测试 ,,  

使用特权

评论回复
10
tomyoct| | 2016-6-9 10:43 | 只看该作者
一个u8不是可以拆成8个bit来用?好像没必要,我程序中标志位什么的都是u8。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

695

帖子

2

粉丝