打印

MSP430fr5989管脚复用输出功能

[复制链接]
3038|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wanyisq|  楼主 | 2015-10-28 15:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请教一下,这款芯片管脚复用输出,怎么设置,用库函数
要使P5.2管脚输出ACLK。怎么通过GPIO_setAsPeripheralModuleFunctionOutputPin()这个库函数设置啊。我设置了并没有输出啊

相关帖子

沙发
dirtwillfly| | 2015-10-28 15:52 | 只看该作者
在mspware里libraries里,有msp430fr5xx的API Programmer‘s guide
里面有对每个库函数的介绍。
下面是这个函数的
void GPIO_setAsPeripheralModuleFunctionOutputPin        (        uint8_t         selectedPort,
uint16_t         selectedPins,
uint8_t         mode
)               
This function configures the peripheral module function in the output direction for the selected pin.

This function configures the peripheral module function in the output direction for the selected pin for either primary, secondary or ternary module function modes. Note that MSP430F5xx/6xx family doesn't support these function modes.

Parameters
selectedPort        is the selected port. Valid values are:
GPIO_PORT_P1
GPIO_PORT_P2
GPIO_PORT_P3
GPIO_PORT_P4
GPIO_PORT_P5
GPIO_PORT_P6
GPIO_PORT_P7
GPIO_PORT_P8
GPIO_PORT_P9
GPIO_PORT_P10
GPIO_PORT_P11
GPIO_PORT_PA
GPIO_PORT_PB
GPIO_PORT_PC
GPIO_PORT_PD
GPIO_PORT_PE
GPIO_PORT_PF
GPIO_PORT_PJ
selectedPins        is the specified pin in the selected port. Mask value is the logical OR of any of the following:
GPIO_PIN0
GPIO_PIN1
GPIO_PIN2
GPIO_PIN3
GPIO_PIN4
GPIO_PIN5
GPIO_PIN6
GPIO_PIN7
GPIO_PIN8
GPIO_PIN9
GPIO_PIN10
GPIO_PIN11
GPIO_PIN12
GPIO_PIN13
GPIO_PIN14
GPIO_PIN15
mode        is the specified mode that the pin should be configured for the module function. Valid values are:
GPIO_PRIMARY_MODULE_FUNCTION
GPIO_SECONDARY_MODULE_FUNCTION
GPIO_TERNARY_MODULE_FUNCTION
Modified bits of PxDIR register and bits of PxSEL register.

Returns
None

使用特权

评论回复
板凳
wanyisq|  楼主 | 2015-10-28 15:55 | 只看该作者
dirtwillfly 发表于 2015-10-28 15:52
在mspware里libraries里,有msp430fr5xx的API Programmer‘s guide
里面有对每个库函数的介绍。
下 ...

我看了,我也是看着这个文档编程的。就是功能没有出来。
void main(void)
{
  WDT_A_hold(WDT_A_BASE);
  PMM_unlockLPM5();
//  system_clock_init();
//  CS_setDCOFreq(CS_DCORSEL_1, CS_DCOFSEL_2);
//  GPIO_setAsOutputPin(GPIO_PORT_P5,GPIO_PIN2);
//  GPIO_setOutputHighOnPin(GPIO_PORT_P5,GPIO_PIN2);
//  CS_setExternalClockSource(32768, 0);
  GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P5,GPIO_PIN2,GPIO_TERNARY_MODULE_FUNCTION );
  GPIO_setAsOutputPin(GPIO_PORT_P5,GPIO_PIN3);
  while(1)
  {
    GPIO_toggleOutputOnPin(GPIO_PORT_P5,GPIO_PIN3);
    __delay_cycles(100000);
  }

}

使用特权

评论回复
地板
dirtwillfly| | 2015-10-28 15:59 | 只看该作者
wanyisq 发表于 2015-10-28 15:55
我看了,我也是看着这个文档编程的。就是功能没有出来。

这句后面的程序正常吗?

使用特权

评论回复
5
wanyisq|  楼主 | 2015-10-28 16:02 | 只看该作者
dirtwillfly 发表于 2015-10-28 15:59
这句后面的程序正常吗?

后面的正常啊,P5.3示波器测试可以翻转

使用特权

评论回复
6
塞北旅途| | 2015-10-28 16:16 | 只看该作者
官方没有提供例程么?对比寄存器的手册看看,那就是还需要操作说明东西来着。

使用特权

评论回复
7
wanyisq|  楼主 | 2015-10-28 16:21 | 只看该作者
塞北旅途 发表于 2015-10-28 16:16
官方没有提供例程么?对比寄存器的手册看看,那就是还需要操作说明东西来着。 ...

没有例程啊

使用特权

评论回复
8
wanyisq|  楼主 | 2015-10-28 16:39 | 只看该作者
我*!都无力吐槽了。我想着试试P5.0的MCLK输出吧,一测可以。回头在测试P5.2的ACLK输出竟然可以了。这是怎么回事啊:dizzy:

使用特权

评论回复
9
sunmeat| | 2015-10-28 17:03 | 只看该作者
wanyisq 发表于 2015-10-28 16:39
我*!都无力吐槽了。我想着试试P5.0的MCLK输出吧,一测可以。回头在测试P5.2的ACLK输出竟然可以了。这是怎 ...

好蛋疼的解决办法。。一般碰到这种问题,关了重开软件。

使用特权

评论回复
10
dirtwillfly| | 2015-10-28 17:03 | 只看该作者
是不是示波器没接好,或者示波器选择的模式不对

使用特权

评论回复
11
wanyisq|  楼主 | 2015-10-28 20:11 | 只看该作者
sunmeat 发表于 2015-10-28 17:03
好蛋疼的解决办法。。一般碰到这种问题,关了重开软件。

我就是想测试一下,P5.0管脚,证实一下会不会是P5.2管脚坏了,谁知道竟然好了。

使用特权

评论回复
12
wanyisq|  楼主 | 2015-10-28 20:17 | 只看该作者
dirtwillfly 发表于 2015-10-28 17:03
是不是示波器没接好,或者示波器选择的模式不对

有可能是板子问题吧,示波器模式就没改过。不过测试结果发现和数据手册中不太一样。
比如我填入CS_setDCOFreq (CS_DCORSEL_0, CS_DCOFSEL_3);频率没有4M,只有2.7M这样子

使用特权

评论回复
13
dirtwillfly| | 2015-10-28 20:39 | 只看该作者
wanyisq 发表于 2015-10-28 20:17
有可能是板子问题吧,示波器模式就没改过。不过测试结果发现和数据手册中不太一样。
比如我填入CS_setDCO ...

差那么多啊。dco本来误差也大

使用特权

评论回复
14
wanyisq|  楼主 | 2015-10-28 20:42 | 只看该作者
dirtwillfly 发表于 2015-10-28 20:39
差那么多啊。dco本来误差也大

但是差的太多了,好像数据手册说没差太多

使用特权

评论回复
15
石鹏波| | 2015-10-28 22:13 | 只看该作者
GPIO_setAsPeripheralModuleFunctionOutputPin()这个库函数
首先说一下 是不是重定义 引脚功能了啊?

使用特权

评论回复
16
wanyisq|  楼主 | 2015-10-29 11:30 | 只看该作者
石鹏波 发表于 2015-10-28 22:13
GPIO_setAsPeripheralModuleFunctionOutputPin()这个库函数
首先说一下 是不是重定义 引脚功能了啊? ...

没有啊,这个是开启管脚复用功能

使用特权

评论回复
17
石鹏波| | 2015-10-29 15:06 | 只看该作者
奥!学习了!为啥要输出这么高的频率呢?

使用特权

评论回复
18
哆来咪| | 2015-10-29 16:31 | 只看该作者
wanyisq 发表于 2015-10-29 11:30
没有啊,这个是开启管脚复用功能

应该还需要别的函数配合了吧。

使用特权

评论回复
19
月正浓| | 2015-10-30 09:47 | 只看该作者
wanyisq 发表于 2015-10-28 20:17
有可能是板子问题吧,示波器模式就没改过。不过测试结果发现和数据手册中不太一样。
比如我填入CS_setDCO ...

这个应该是在误差范围内了

使用特权

评论回复
20
舒斯特尔| | 2015-10-30 15:48 | 只看该作者
dirtwillfly 发表于 2015-10-28 15:52
在mspware里libraries里,有msp430fr5xx的API Programmer‘s guide
里面有对每个库函数的介绍。
下 ...

这个资料很详细的,谢谢楼主分享

使用特权

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

本版积分规则

个人签名:--By Dr. Heinz Doofenshmirtz

40

主题

180

帖子

2

粉丝