打印
[技术问题解答]

kl25z128vlk4的spi(已解决)

[复制链接]
1719|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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生成的代码,所以看起来比较冗余,你可以直接按照自己的意愿一次性设置成功。没有先后顺 ...

给个示例呗,要是您的话,怎么设置和怎么使用?

使用特权

评论回复
5
FSL_TICS_ZJJ| | 2014-4-2 16:29 | 只看该作者
最聪明的笨蛋 发表于 2014-4-2 16:13
给个示例呗,要是您的话,怎么设置和怎么使用?

亲,你看官方IAR的例程,那里设置引脚交叉功能就是一次性到位。

使用特权

评论回复
6
最聪明的笨蛋|  楼主 | 2014-4-2 17:25 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-4-2 16:29
亲,你看官方IAR的例程,那里设置引脚交叉功能就是一次性到位。

设置的我倒是看到了,就是设置到位后我还能不能改变啊。比如我设置成PTC10为GPIO输出,但是我怎么给它赋值啊,比如我想设置它为1。

使用特权

评论回复
7
FSL_TICS_ZJJ| | 2014-4-3 09:13 | 只看该作者
你要是设置成GPIO输出的话,要是想赋值,你就直接控制GPIOx_PDOR寄存器啊。你看看用户手册中GPIO章节,那里讲的很清楚啊。
还有对于GPIO控制,你可以看我们官方例程,比如low_pwer_demo中的LED的控制。

使用特权

评论回复
8
最聪明的笨蛋|  楼主 | 2014-4-4 08:33 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-4-3 09:13
你要是设置成GPIO输出的话,要是想赋值,你就直接控制GPIOx_PDOR寄存器啊。你看看用户手册中GPIO章节,那里 ...

好的

使用特权

评论回复
9
FSL_TICS_ZJJ| | 2014-4-4 09:25 | 只看该作者
最聪明的笨蛋 发表于 2014-4-4 08:33
好的

你先试着调,如果有问题,直接联系我。

使用特权

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

本版积分规则

5

主题

62

帖子

0

粉丝