打印
[STM32F1]

串口和定时器中断组合问题

[复制链接]
2279|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liu1004010308|  楼主 | 2015-8-31 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIM3_IRQHandler(void)
{        
       
        if(TIM3->SR&0X0001)//溢出中断
        {
                LED1=!LED1;               
                printf("%4.3f",SJZ[i]);
                printf("\t");
         }                                  
        TIM3->SR&=~(1<<0);//清除中断标志位             
}
用示波器观察LED1的方波生成情况。频率是500hz,但是只要加入printf("%4.3f",SJZ[i])频率变成了250hz,而只加入printf("\t")又是正常的500hz.改变波特率还是不行。各位大神,这是什么原因啊
沙发
amanda_s| | 2015-8-31 11:30 | 只看该作者
你把这一句放到前面来呢:
TIM3->SR&=~(1<<0);//清除中断标志位
再看看中断优先级上有没有什么问题。

使用特权

评论回复
板凳
liu1004010308|  楼主 | 2015-8-31 13:17 | 只看该作者
amanda_s 发表于 2015-8-31 11:30
你把这一句放到前面来呢:
TIM3->SR&=~(1

这样其实是没有问题的,就是如果加上for(i=0;i<2;i++){ printf("%4.3f",SJZ);
                printf("\t");}就有问题了,是不是串口程序占用的时间太多了。引起的

使用特权

评论回复
地板
liu1004010308|  楼主 | 2015-8-31 13:47 | 只看该作者
liu1004010308 发表于 2015-8-31 13:17
这样其实是没有问题的,就是如果加上for(i=0;i

问题解决了,将波特率设置成最大就可以了,还是要计算下传输时间啊

使用特权

评论回复
5
qqcaiyin| | 2015-8-31 13:52 | 只看该作者
500HZ就是2MS ,你算下你发送字节需要的时间

使用特权

评论回复
6
chenyu988| | 2015-9-7 09:05 | 只看该作者
中断里面不要串口打印!!!!!!!!!!!!!

使用特权

评论回复
7
android2| | 2015-9-7 09:17 | 只看该作者
问题解决了,将波特率设置成最大就可以了

楼主设置的多少波特率

使用特权

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

本版积分规则

12

主题

41

帖子

0

粉丝