澳门永利娱乐平台开户: [技术问答] NUC029LAN使用PWMB,调用PWM_ConfigOutputChannel后SystemCoreClock变了

永利游戏开户直营
399|12
楼主
本帖最后由 pidnews 于 2020-7-29 16:48 编辑

NUC029LAN,在NUC029xAN_BSPv3.00.003的PWM基础上修改,那个代码只有PWMA的,在板子上试过正常,但改成PWMB的后,运行发现PWM_ConfigOutputChannel后,发现SystemCoreClock从50M变成了25M多,查PWMB运行调用了SystemCoreClockUpdate();而PWMA不会调用这个,这个bsp是不是有bug
代码如下:在
PWM_ConfigOutputChannel设置断点,停下来的时候SystemCoreClock是50M,
运行完PWM_ConfigOutputChannel,SystemCoreClock就变了;PWM_ConfigOutputChannel是BSP里面的库函数,我就不贴了,另外这个是在BSP samplecode基础上改的,注释没改
void PWM_Init(void)
{
    /* Enable PWM module clock */
    CLK_EnableModuleClock(PWM01_MODULE);
    CLK_EnableModuleClock(PWM23_MODULE);
    CLK_EnableModuleClock(PWM45_MODULE);

    /* Select PWM module clock source */
    CLK_SetModuleClock(PWM01_MODULE, CLK_CLKSEL1_PWM01_S_HCLK, 0);
    CLK_SetModuleClock(PWM23_MODULE, CLK_CLKSEL1_PWM23_S_HCLK, 0);
    CLK_SetModuleClock(PWM45_MODULE, CLK_CLKSEL2_PWM45_S_HCLK, 0);
    /* Reset PWMA channel0~channel3 */
    SYS_ResetModule(PWM03_RST);
    SYS_ResetModule(PWM47_RST);

    SYS->P2_MFP &= ~SYS_MFP_P20_Msk;
    SYS->P2_MFP |= SYS_MFP_P20_PWM0;
    SYS->P2_MFP &= ~SYS_MFP_P21_Msk;
    SYS->P2_MFP |= SYS_MFP_P21_PWM1;
    SYS->P2_MFP &= ~SYS_MFP_P22_Msk;
    SYS->P2_MFP |= SYS_MFP_P22_PWM2;
    SYS->P2_MFP &= ~SYS_MFP_P23_Msk;
    SYS->P2_MFP |= SYS_MFP_P23_PWM3;
    SYS->P2_MFP &= ~SYS_MFP_P24_Msk;
    SYS->P2_MFP |= SYS_MFP_P24_PWM4;

    PWM_ConfigOutputChannel(PWMB, PWM_CH0, 52000, 47);

    PWM_EnableOutput(PWMB, BIT0);
    PWM_Start(PWMB, BIT0);


}

沙发
| 2020-7-29 16:05 | 只看该作者
你只修改了PWMA到PWMB吗,两组对应不同的通道的。
A对应0123,B对应4567
板凳
| 2020-7-29 16:05 | 只看该作者
相关的内容要跟着一起修改。不是只修改一个AB,的问题,另外也可能我理解的不对,你可以把你的代码贴出来大家一起研究研究。
地板
 楼主 | 2020-7-29 16:45 | 只看该作者
gaoyang9992006 发表于 2020-7-29 16:05
你只修改了PWMA到PWMB吗,两组对应不同的通道的。
A对应0123,B对应4567

PWM_ConfigOutputChannel这个的参数只需要改A/B就行了,其他的不影响
5
| 2020-7-29 18:55 | 只看该作者
有点看不懂了,这跟SGE系列的例子貌似不同,我手里的开发板是SGE系列的,跟你这个不一样,,,
6
| 2020-7-29 19:02 | 只看该作者
楼主,我下载了你的这个BSP,发现你错了,跟我理解的不同。
PWMA对应通道0到3,PWMB对应通道4到7
你这个虽然使用了PWMB,但是通道你没有修改。
7
| 2020-7-29 19:05 | 只看该作者
不过我这里说的不够准确,实际上通道他们分了两组,每组都是0到3
所以你配置函数是对的

    PWM_EnableOutput(PWMB, BIT0);
    PWM_Start(PWMB, BIT0);
这两个应该是错的
例如
    // Enable output of all PWMA channels
    PWM_EnableOutput(PWMA, 0xF);
表示PWM0到PWM3
而你用B组,则需要对应PWM4到PWM7
例如
    PWM_EnableOutput(PWMB, 0xF0);
8
| 2020-7-29 19:06 | 只看该作者
    而PWM0到PWM3是
// Start
    PWM_Start(PWMA, 0xF);
则PWMB使用PWM4到PWM7需要
    PWM_Start(PWMB, 0xF0);
9
| 2020-7-29 19:06 | 只看该作者
你试试这么修改可以不。
10
| 2020-7-29 20:12 | 只看该作者
楼上版主说的问题确实楼主存在。修改一下看看。
11
 楼主 | 2020-7-31 10:12 | 只看该作者
gaoyang9992006 发表于 2020-7-29 19:06
而PWM0到PWM3是
// Start
    PWM_Start(PWMA, 0xF);

谢谢回复,确实是这个问题,
12
| 2020-7-31 10:35 | 只看该作者
pidnews 发表于 2020-7-31 10:12
谢谢回复,确实是这个问题,

记得给我点个赞啊,打赏就不用了,O(∩_∩)O哈哈~,不要吝惜你的点赞。
13
| 2020-8-2 15:46 | 只看该作者
原来如此。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
大都会娱乐场注册 澳门银河棋牌883 澳门的八佰伴什么时候打折 ag国际馆平台下载官方网 申博现金网手机APP下载
威尼斯人娱乐场开户 一肖一码大公开 舟山网联游戏大厅 利盈开户送钱 聚星娱乐总代
澳门金沙快速充值中心 美高梅网上游戏 蒙特卡罗国际娱乐网登入 威斯汀HG名人馆官方网 hjdc888皇家赌场
永乐国际真人娱乐登入 太阳城网上赌场 www.988msc.com safe138 bet365台湾官网官方网