OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5112|回复: 8

串口和PWM冲突吗????

[复制链接]

13

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2015-4-4
在线时间
6 小时
发表于 2016-6-15 22:33:51 | 显示全部楼层 |阅读模式
1金钱
void TIM1_PWM_Init(u16 arr,u16 psc)
{  
         GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  //使能GPIO外设时钟使能
                                                                                    

   //设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH1
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        //设置该引脚为复用输出功能,输出TIM1 CH2的PWM脉冲波形
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; //TIM_CH2
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
、、、、、、、、、、、、、、、、、、、、、
主函数里
TIM1_PWM_Init(199,7199);//不分频。PWM频率===(7200*200)/72000000=0.02=20ms
、、、、、、、、、、、、、、、、、、、、
设置完后串口就很不好使了,求解!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-6-15 22:57:05 | 显示全部楼层
不冲突啊。你看下PA9,PA10的寄存器状态,是否还正常?
回复

使用道具 举报

13

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2015-4-4
在线时间
6 小时
 楼主| 发表于 2016-6-15 23:04:28 | 显示全部楼层
正点原子 发表于 2016-6-15 22:57
不冲突啊。你看下PA9,PA10的寄存器状态,是否还正常?

void uart_init(u32 bound){
    //GPIO端口设置
    GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
         
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
     //USART1_TX   PA.9
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
   
    //USART1_RX          PA.10
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);  

   //Usart1 NVIC 配置

    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //

        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器USART1
  
   //USART 初始化设置
   
        USART_InitStructure.USART_BaudRate = bound;//一般设置为9600;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

    USART_Init(USART1, &USART_InitStructure);
   

    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启中断
   
    USART_Cmd(USART1, ENABLE);                    //使能串口

}
这是我串口程序
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2019-3-15
在线时间
18 小时
发表于 2019-8-4 17:00:04 | 显示全部楼层
我同样想问这个问题,时钟会不会冲突
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2019-11-28
在线时间
7 小时
发表于 2020-3-31 23:34:26 | 显示全部楼层
我也想问这个来着,想做个串口输入改变占空比的,配置完用不了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2019-11-28
在线时间
7 小时
发表于 2020-4-8 21:25:52 | 显示全部楼层
一样的,配置完了改不了占空比
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2018-10-25
在线时间
49 小时
发表于 2020-10-26 16:57:35 | 显示全部楼层
问题解决了吗?我也遇到串口工作不正常的情况,串口输出不是一串字节一起出现,而是先出2、3个字节再出后面的
回复

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2019-12-11
在线时间
8 小时
发表于 2020-11-21 16:57:11 | 显示全部楼层
同问同问 我心态崩了呀 我老大说好像只能用一个 这也是我搞不明白的事
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2020-11-21 21:03:02 | 显示全部楼层
zhangyu6175 发表于 2020-10-26 16:57
问题解决了吗?我也遇到串口工作不正常的情况,串口输出不是一串字节一起出现,而是先出2、3个字节再出后面 ...

楼主的情况没说明白, 猜不到是什么个情况
但从你说的现象来猜, 应该就是计时器的中断里做了很多事, 甚至是用了Delay函数而引起的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 18:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表