打印
[技术问答]

新唐M451 PF6 不受控 急

[复制链接]
1099|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kqxajgg|  楼主 | 2017-1-5 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新唐M451    PF6  不受控,在主程序中把功能利用为GPIO。仍然不受控,这个脚是ICE_DAT,怎样才能设置成GPIO呢,急呀,求大神帮忙
来自 2楼
kqxajgg|  楼主 | 2017-1-6 09:47 | 只看该作者
谢谢大家,需要在SYS_Init函数中加下面两句就可以了,不影响在Keil里面重新烧录程序,但没试过在线调试。

使用特权

评论回复
来自 3楼
kqxajgg|  楼主 | 2017-1-6 09:48 | 只看该作者
kqxajgg 发表于 2017-1-6 09:47
谢谢大家,需要在SYS_Init函数中加下面两句就可以了,不影响在Keil里面重新烧录程序,但没试过在线调试。 ...

        SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF6MFP_Msk);
    SYS->GPF_MFPL |= SYS_GPF_MFPL_PF6MFP_GPIO;

使用特权

评论回复
地板
huangcunxiake| | 2017-1-5 16:20 | 只看该作者
你是设置为输出还是输入?用的是库函数?

使用特权

评论回复
5
huangcunxiake| | 2017-1-5 16:23 | 只看该作者

/**
* [url=home.php?mod=space&uid=247401]@brief[/url]       Set GPIO operation mode
*
* @param[in]   port        GPIO port. It could be PA, PB, PC, PD, PE or PF.
* @param[in]   u32PinMask  The single or multiple pins of specified GPIO port.
*                          It could be BIT0 ~ BIT15 for PA, PB, PC and PD GPIO port.
*                          It could be BIT0 ~ BIT14 for PE GPIO port.
*                          It could be BIT0 ~ BIT7 for PF GPIO port.
* @param[in]   u32Mode     Operation mode.  It could be \n
*                          GPIO_MODE_INPUT, GPIO_MODE_OUTPUT, GPIO_MODE_OPEN_DRAIN, GPIO_MODE_QUASI.
*
* [url=home.php?mod=space&uid=266161]@return[/url]      None
*
* [url=home.php?mod=space&uid=1543424]@Details[/url]     This function is used to set specified GPIO operation mode.
*/
void GPIO_SetMode(GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode)
{
    uint32_t i;

    for(i = 0; i < GPIO_PIN_MAX; i++)
    {
        if(u32PinMask & (1 << i))
        {
            port->MODE = (port->MODE & ~(0x3 << (i << 1))) | (u32Mode << (i << 1));
        }
    }
}
这里说的这个函数是支持PF6的。

使用特权

评论回复
6
kqxajgg|  楼主 | 2017-1-5 20:07 | 只看该作者
huangcunxiake 发表于 2017-1-5 16:23
这里说的这个函数是支持PF6的。

        GPIO_SetMode(PF, BIT1|BIT3|BIT4|BIT6, GPIO_MODE_OUTPUT);
    PF6  =  0;
   
        while(1);

使用特权

评论回复
7
kqxajgg|  楼主 | 2017-1-5 20:08 | 只看该作者
huangcunxiake 发表于 2017-1-5 16:20
你是设置为输出还是输入?用的是库函数?

        GPIO_SetMode(PF, BIT1|BIT3|BIT4|BIT6, GPIO_MODE_OUTPUT);
    PF6  =  0;
        while(1);
这样写的,前几个都可以控制 但PF6 不能控制

使用特权

评论回复
8
598330983| | 2017-1-6 00:01 | 只看该作者
单独写个试试。还有看看其他端口的BIT6靠谱不,这个端口外部接了什么吗

使用特权

评论回复
9
落叶行健ywm| | 2017-1-6 08:23 | 只看该作者
ICE_DAT 功能先关了。好像有函数可以设置,不过你以后烧写代码之类就来回切换比较麻烦

使用特权

评论回复
10
kqxajgg|  楼主 | 2017-1-6 09:34 | 只看该作者
落叶行健ywm 发表于 2017-1-6 08:23
ICE_DAT 功能先关了。好像有函数可以设置,不过你以后烧写代码之类就来回切换比较麻烦 ...

怎么关呀?

使用特权

评论回复
11
kqxajgg|  楼主 | 2017-1-6 09:44 | 只看该作者

谢谢提醒,问题解决,且不影响烧录,

使用特权

评论回复
12
huangcunxiake| | 2017-1-10 22:32 | 只看该作者

这个是什么功能,怎么搞定的,没看你贴的代码有这个啊

使用特权

评论回复
13
kqxajgg|  楼主 | 2017-2-21 09:50 | 只看该作者
huangcunxiake 发表于 2017-1-5 16:23
这里说的这个函数是支持PF6的。

需要在SYS_Init函数中加下面两句就可以了 SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF6MFP_Msk);
    SYS->GPF_MFPL |= SYS_GPF_MFPL_PF6MFP_GPIO;

使用特权

评论回复
14
zhuomuniao110| | 2017-2-21 12:41 | 只看该作者
现在受控了没

使用特权

评论回复
15
huangcunxiake| | 2017-2-21 19:52 | 只看该作者
kqxajgg 发表于 2017-2-21 09:50
需要在SYS_Init函数中加下面两句就可以了 SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF6MFP_Msk);
    SYS->GPF_M ...

MARK。。多功能外设的选择。选择成IO模式。

使用特权

评论回复
16
huangcunxiake| | 2017-2-21 19:53 | 只看该作者
那么就是这个端口默认的功能不是GPIO了,之前以为所有的端口都是默认IO呢。

使用特权

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

本版积分规则

5

主题

32

帖子

1

粉丝