Port D bit BME on KE04

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Port D bit BME on KE04

跳至解决方案
810 次查看
jun1
Contributor V

Hi.

Always thank you for your help.

Please tell me below.

I am using KE04.

See `` How to Use Bit-band and BME on the KE04 and KE06 Subfamilies AN4838 ''
An attempt was made to set bit 2,1,0 of port D to 0 using a macro in BME.h.

As described in “3.5 BME Library” in the above application manual

     BME_AND (& GPIOD-> PDOR) = ~ ((1u << 2) | (1u << 1) | (1u << 0));

However, there is no GPIOD definition.

According to the manual, the upper 8 bits of the 32-bit area indicated by the GPIOA address are assigned to port D.

So how do you write the bit set clear for port D in the BME library?

Thank you.

jun

标签 (1)
0 项奖励
回复
1 解答
674 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi jun,

yes, there isn't GPIOD. If you want to set and clear PTD0, PTD1, PTD2, you can write as below

        BME_OR(&GPIOA->PDOR) = (0x07<<24);
        BME_AND(&GPIOA->PDOR)= ~(0x07<<24);

Regards,

Jing

在原帖中查看解决方案

2 回复数
674 次查看
jun1
Contributor V

Hi.

I am always grateful for your help.

Oh, yes. That's because it is placed in the upper bits.

well understood.

jun

0 项奖励
回复
675 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi jun,

yes, there isn't GPIOD. If you want to set and clear PTD0, PTD1, PTD2, you can write as below

        BME_OR(&GPIOA->PDOR) = (0x07<<24);
        BME_AND(&GPIOA->PDOR)= ~(0x07<<24);

Regards,

Jing