打印
[STM8]

ST单片机C语言有什么指令定义端口的某一位做变量?

[复制链接]
7069|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiangfeizi|  楼主 | 2010-10-18 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C语言里可以用sbit指令将端口的某一位定义成变量,不过在STVD里该指令好象不能被识别,编译也通不过。请问ST单片机该用什么指令来将端口的某一位定义成变量呢?请多指教,谢谢!
沙发
jgphu| | 2010-10-18 17:38 | 只看该作者
_Boot  来定义某一位

使用特权

评论回复
板凳
xiangfeizi|  楼主 | 2010-10-18 17:52 | 只看该作者
能不能麻烦你给个示例,具体格式是什么样的?

使用特权

评论回复
地板
jgphu| | 2010-10-18 18:25 | 只看该作者
typedef struct
{
        _Bool Bit0;
        _Bool Bit1;
        _Bool Bit2;
        _Bool Bit3;
        _Bool Bit4;
        _Bool Bit5;
        _Bool Bit6;
        _Bool Bit7;
}SBitChar;

使用特权

评论回复
5
jgphu| | 2010-10-18 18:25 | 只看该作者
typedef struct
{
        _Bool Bit0;
        _Bool Bit1;
        _Bool Bit2;
        _Bool Bit3;
        _Bool Bit4;
        _Bool Bit5;
        _Bool Bit6;
        _Bool Bit7;
}SBitChar;

typedef struct
{
        SBitChar ODR;
        SBitChar IDR;
        SBitChar DDR;
        SBitChar CR1;
        SBitChar CR2;
}GPIO;

volatile   GPIO   PA @ 0x5000;
volatile   GPIO   PB @ 0x5005;
volatile   GPIO   PC @ 0x500a;
volatile   GPIO   PD @ 0x500f;
volatile   GPIO   PE @ 0x5014;
volatile   GPIO   PF @ 0x5019;
volatile   GPIO   PG @ 0x501e;
volatile   GPIO   PI @ 0x5028;

使用特权

评论回复
6
jgphu| | 2010-10-18 18:26 | 只看该作者
例如: PA.ODR.Bit1 = 1;   表示PA1输出为高电平

使用特权

评论回复
7
xiangfeizi|  楼主 | 2010-10-18 21:13 | 只看该作者
老大,PA.ODR.Bit1=1;怎么编译不能通过啊?前面的方式好象不是定义端口的位吧,是自己定义的寄存器的位吧?

使用特权

评论回复
8
cp17951| | 2010-10-18 22:38 | 只看该作者
sbit

使用特权

评论回复
9
jgphu| | 2010-10-19 09:55 | 只看该作者
就是端口定义的位啊,你把那个结构体在头文件里写上,在C文件的程序里写PA.ODR.Bit1=1。怎么可能编译不通过。。。

使用特权

评论回复
10
hgjinwei| | 2010-10-19 18:39 | 只看该作者
还是用标准C好看点吧:
typedef struct
{
        unsigned char Bit0 : 1;
        unsigned char Bit1 : 1;
        unsigned char Bit2 : 1;
        unsigned char Bit3 : 1;
        unsigned char Bit4 : 1;
        unsigned char Bit5 : 1;
        unsigned char Bit6 : 1;
        unsigned char Bit7 : 1;
}SBitChar;

使用特权

评论回复
11
grant_jx| | 2010-10-19 19:32 | 只看该作者
用COSMIC的话,找一下它的帮助文档,查一下bitfield的用法。

使用特权

评论回复
12
xuannin| | 2010-10-19 19:48 | 只看该作者
简单:
_Bool TEST   @ PD_ODR:4;

使用特权

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

本版积分规则

12

主题

62

帖子

0

粉丝