在恩智浦LPC1769中设置引脚

时间:2016-11-18 14:45:53

标签: nxp-microcontroller

我只需修改另一个端口/引脚的源代码。 我尽可能多地研究NXP UM10360

我有这个设置;

来自" CMSIS_CORE_LPC17xx"的文件头文件: LPC17xx.h

$compile

我想用另一个(从SSP1到SSP0)替换这些引脚。

LPC_PINCON->PINSEL0 |= 0x2<<14; //P0.7 > SCK1 
LPC_PINCON->PINSEL0 |= 0x2<<16; //P0.8 > MISO1 
LPC_PINCON->PINSEL0 |= 0x2<<18; //P0.9 > MOSI1 

根据手册,我尝试了这个(功能10);

P0.7 will be P0.15
P0.8 will be P0.17
P0.9 will be P0.18

但是,此后SPI设备已经停止。上面的原始设置工作正常,并使用逻辑分析仪向我显示漂亮的SPI信号。但是,通过相应的新引脚和设置,我只能在逻辑分析仪上启用CSN,MISO和SCK(无脉冲)。

就是这样:

enter image description here

我做错了什么? (我对NXP MCU缺乏经验,请耐心等待。)

编辑:

对于记录,我最终发现它是我自己,问题解决了;

LPC_PINCON->PINSEL0 &= ~((0x3 << 31)|(0x3 << 30));//P0.15, SCK0
LPC_PINCON->PINSEL0 |= ((0x2 << 31)|(0x2 << 30)); //ENable clock
LPC_PINCON->PINSEL1 &= ~((0x2 << 3)|(0x2 << 2));//P0.17,  MISO0
LPC_PINCON->PINSEL1 &= ~((0x2 << 5)|(0x2 << 4));//P0.18,  MOSI0

以下是逻辑分析仪的结果;

enter image description here

1 个答案:

答案 0 :(得分:0)

为了记录,我可以通过这样设置来设法建立一个可行的解决方案;

    LPC_PINCON->PINSEL0 |= 0x2<<30; //SCK0, P0.15 
    LPC_PINCON->PINSEL1 |= 0x2<<2;  //MISO0, P0.17 
    LPC_PINCON->PINSEL1 |= 0x2<<4;  //MOSI0, P0.18 
    LPC_GPIO0->FIODIR |= (1<<16);   //SSEL/CSN, P0.16