你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

有哪位高手用STM32F303XB JTAG JTDO口(B3)做TIM8输出

[复制链接]
qingzhu-325396 提问时间:2017-2-17 10:24 /
将STM32F303CBT6的39脚(B3)复用为TIM8_CH1N,做PWM三相互补输出,发现除TIM8_CH1N外,其他输出均正常,有哪位高手可以指点一下。
        /* GPIOB&TIM8 Periph clock enable */
        RCC->APB2ENR |= 0x00002000;
        RCC->AHBENR |= 0x00040000;


        //IO
        GPIOB->AFR[0] &= 0x00000FFF;
        GPIOB->AFR[0] |= 0x55344000;
        GPIOB->AFR[1] &= 0xFFFFFF00;
        GPIOB->AFR[1] |= 0x000000AA;


        /* Speed mode configuration */
        GPIOB->OSPEEDR |= 0x000FFFC0;  
        /* Output mode configuration */
        GPIOB->OTYPER &= 0xFFFFFC07;
       
        GPIOB->UPDR &= 0xFFF0003F;
        GPIOB->UPDR |= 0x000AAA80;        
       
        GPIOB->MODER  &= 0xFFF0003F;
        GPIOB->MODER |= 0x000A2A80;        
               
       
/****TimeBaseInit********/
        //tDTS=tCK_INT, TIM8_ARR register is not buffered;Center-aligned mode 3
        TIM8->CR1 = 0x00E0;
  
        //25uS*2;20KHz(1800)
        //25uS;40KHz()
        /* Set the Autoreload value */
        TIM8->ARR = 1800 ;


        /* Set the Prescaler value */
        TIM8->SC = 0;
       
        /* Generate an update event to reload the Prescaler
     and the repetition counter(only for TIM1 and TIM8) value immediatly */
        TIM8->EGR = 0x0001;

       
        /* Reset the Output Polarity level */
        TIM8->CCER = 0x00000000;


        /* Write to TIMx CR2 */
        TIM8->CR2 = 0;
  
        /* Reset the Output Compare Mode Bits */
        //PWMA,B,C,4WM mode2
        TIM8->CCMR1 = 0x00007070;
        TIM8->CCMR2 = 0x00007070;
        //PWM5
        TIM8->CCMR3 = 0x00000060;


        /* Set the Capture Compare Register value */
        TIM8->CCR1 = 600;
        TIM8->CCR2 = 900;
        TIM8->CCR3 = 1500;
        TIM8->CCR4 = 1800;
        TIM8->CCR5 = 1740;
  


        /* Set the Output Compare Polarity */
        TIM8->CCER |= 0x00011555;
  
        /* Reset the Output Compare Mode Bits */
        //TIM8->CCMR1 &= 0xFFFFF7F7;
        //TIM8->CCMR2 &= 0xFFFFF7F7;
        //TIM8->CCMR3 &= 0xFFFFFFF7;


        TIM8->BDTR = 0x00028108;//????
       
        TIM8->SR &=0xFF7E;
        TIM8->DIER = 0x0000;

        /* Enable the TIM Counter */
        TIM8->CR1 &= 0xFFFE;
        TIM8->CR1 |= 0x0001;       


收藏 1 评论4 发布时间:2017-2-17 10:24

举报

4个回答
creep 回答时间:2017-2-17 10:43:00
贴代码建议用论坛的代码插入工具,否则可能会将代码转化为表情。

2017-02-17_103820.png

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

xmshao 回答时间:2017-2-17 12:08:12
本帖最后由 xmshao 于 2017-2-17 12:12 编辑

寄存器代码看起来真辛苦,这里没看出配置问题来。
主要检查MODER/AFR寄存器的配置。
你也不妨检查确认下硬件线路。

或者用STM32CUBEMX配置个测试代码试试。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

qingzhu-325396 回答时间:2017-2-17 14:02:23
creep 发表于 2017-2-17 10:43
贴代码建议用论坛的代码插入工具,否则可能会将代码转化为表情。

第一次发,见谅见谅。。。
qingzhu-325396 回答时间:2017-2-17 14:08:01
xmshao 发表于 2017-2-17 12:08
寄存器代码看起来真辛苦,这里没看出配置问题来。
主要检查MODER/AFR寄存器的配置。
你也不妨检查确认下硬 ...

检查过MODER和AFR寄存器,没有错。硬件连接也是好的。JTAG的端口有有两个被复用到TIM8输出,一个正常,就是JTDO没有输出。现在准备试一下直接用库函数。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版