[技术问题解答] kl25z128vlk4的spi(已解决)

[复制链接]
2048|8
 楼主| 最聪明的笨蛋 发表于 2014-4-2 15:41 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-5-5 10:37 编辑

iar的kl25z128vlk4的例程中,SM1.c文件中有下面一段话,这段话为什么设置的时候有MUX(0x02),MUX(0x05)和MUX(0x05),MUX(0x02)  两种顺序之分?还有就是这个管脚是怎么被使用的啊?因为我自己想设置两个输入输出脚,但是不知道怎么能使用它们。比如:(类似啊)int a=1;if(b=1)···  就是直接给一个脚赋值和判断一个脚的值。
  /* PORTA_PCR16: ISF=0,MUX=5 */
  PORTA_PCR16 = (uint32_t)((PORTA_PCR16 & (uint32_t)~(uint32_t)(
                 PORT_PCR_ISF_MASK |
                 PORT_PCR_MUX(0x02)
                )) | (uint32_t)(
                 PORT_PCR_MUX(0x05)
                ));                                                  
  /* PORTA_PCR17: ISF=0,MUX=5 */
  PORTA_PCR17 = (uint32_t)((PORTA_PCR17 & (uint32_t)~(uint32_t)(
                 PORT_PCR_ISF_MASK |
                 PORT_PCR_MUX(0x02)
                )) | (uint32_t)(
                 PORT_PCR_MUX(0x05)
                ));                                                  
  /* PORTC_PCR5: ISF=0,MUX=2 */
  PORTC_PCR5 = (uint32_t)((PORTC_PCR5 & (uint32_t)~(uint32_t)(
                PORT_PCR_ISF_MASK |
                PORT_PCR_MUX(0x05)
               )) | (uint32_t)(
                PORT_PCR_MUX(0x02)
               ));                                                  
  /* PORTC_PCR4: ISF=0,MUX=2 */
  PORTC_PCR4 = (uint32_t)((PORTC_PCR4 & (uint32_t)~(uint32_t)(
                PORT_PCR_ISF_MASK |
                PORT_PCR_MUX(0x05)
               )) | (uint32_t)(
                PORT_PCR_MUX(0x02)
               ));  

FSL_TICS_ZJJ 发表于 2014-4-2 15:55 | 显示全部楼层
楼主,这个因为是PE生成的代码,所以看起来比较冗余,你可以直接按照自己的意愿一次性设置成功。没有先后顺序之分,这个只是PE软件生成代码的情况。
 楼主| 最聪明的笨蛋 发表于 2014-4-2 16:12 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-4-2 15:55
楼主,这个因为是PE生成的代码,所以看起来比较冗余,你可以直接按照自己的意愿一次性设置成功。没有先后顺 ...

是不是说代码中的0x02和0x05没有先后顺序?因为它配置不同管脚的时候,基本上是一样的,但是那个0x02和0x05出现的顺序不同,会不会是设置的内容不同呢?还有就是我怎么直接使用这个管脚啊?
 楼主| 最聪明的笨蛋 发表于 2014-4-2 16:13 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-4-2 15:55
楼主,这个因为是PE生成的代码,所以看起来比较冗余,你可以直接按照自己的意愿一次性设置成功。没有先后顺 ...

给个示例呗,要是您的话,怎么设置和怎么使用?
FSL_TICS_ZJJ 发表于 2014-4-2 16:29 | 显示全部楼层
最聪明的笨蛋 发表于 2014-4-2 16:13
给个示例呗,要是您的话,怎么设置和怎么使用?

亲,你看官方IAR的例程,那里设置引脚交叉功能就是一次性到位。
 楼主| 最聪明的笨蛋 发表于 2014-4-2 17:25 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-4-2 16:29
亲,你看官方IAR的例程,那里设置引脚交叉功能就是一次性到位。

设置的我倒是看到了,就是设置到位后我还能不能改变啊。比如我设置成PTC10为GPIO输出,但是我怎么给它赋值啊,比如我想设置它为1。
FSL_TICS_ZJJ 发表于 2014-4-3 09:13 | 显示全部楼层
你要是设置成GPIO输出的话,要是想赋值,你就直接控制GPIOx_PDOR寄存器啊。你看看用户手册中GPIO章节,那里讲的很清楚啊。
还有对于GPIO控制,你可以看我们官方例程,比如low_pwer_demo中的LED的控制。
 楼主| 最聪明的笨蛋 发表于 2014-4-4 08:33 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-4-3 09:13
你要是设置成GPIO输出的话,要是想赋值,你就直接控制GPIOx_PDOR寄存器啊。你看看用户手册中GPIO章节,那里 ...

好的
FSL_TICS_ZJJ 发表于 2014-4-4 09:25 | 显示全部楼层
最聪明的笨蛋 发表于 2014-4-4 08:33
好的

你先试着调,如果有问题,直接联系我。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

62

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部