打印

stm32f103c8t6硬件接的是8M晶振,想知道执行一句话用多长时间

[复制链接]
1574|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32f103c8t6硬件接的是8M晶振,想知道执行一句话用多长时间。时钟配置为:


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |   
            RCC_APB2Periph_AFIO |  
            RCC_APB2Periph_USART1  
            ,ENABLE);  
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);

其余没有对时钟进行配置。主要是想写一个us级的延时程序,不知道一句话用多长时间,所以没办法写。前辈们帮忙看一看,谢谢了。。。

相关帖子

沙发
aozima| | 2013-12-2 18:07 | 只看该作者
STM32F103默认主频72M,FLASH有读等待周期,所以还是数systick比较靠谱。

使用特权

评论回复
板凳
xielaibin|  楼主 | 2013-12-3 16:53 | 只看该作者
也想过用滴答,但是没接触过,不知道具体怎么配置,您有没有比较完整的配置程序啊?呵呵

使用特权

评论回复
地板
andyjian| | 2013-12-4 13:05 | 只看该作者
delay_init(u8 SYSCLK)
{
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);        //选择外部时钟  HCLK/8
        fac_us=SYSCLK/8;                    
        fac_ms=(u16)fac_us*1000;
}                                                                    
void delay_ms(u16 nms)
{                                     
        u32 temp;                  
        SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
        SysTick->VAL =0x00;           //清空计数器
        SysTick->CTRL=0x01 ;          //开始倒数  
        do
        {
                temp=SysTick->CTRL;
        }
        while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   
        SysTick->CTRL=0x00;       //关闭计数器
        SysTick->VAL =0X00;       //清空计数器                      
}                                                                                 
void delay_us(u32 nus)          
{               
        u32 temp;                     
        SysTick->LOAD=nus*fac_us; //时间加载                           
        SysTick->VAL=0x00;        //清空计数器
        SysTick->CTRL=0x01 ;      //开始倒数          
        do
        {
                temp=SysTick->CTRL;
        }
        while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   
        SysTick->CTRL=0x00;       //关闭计数器
        SysTick->VAL =0X00;       //清空计数器         
}


希望能帮到楼主

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
xielaibin + 3 赞一个!
5
xielaibin|  楼主 | 2013-12-5 19:38 | 只看该作者
非常感谢

使用特权

评论回复
6
dontium| | 2013-12-5 20:10 | 只看该作者
xielaibin 发表于 2013-12-5 19:38
非常感谢

觉得好的话,给回答者加分撒!!
为什么不以实际行动作感谢呢?
又不是让你掏腰包,

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
xielaibin + 3 很给力!
7
xielaibin|  楼主 | 2013-12-6 16:44 | 只看该作者
dontium 发表于 2013-12-5 20:10
觉得好的话,给回答者加分撒!!
为什么不以实际行动作感谢呢?
又不是让你掏腰包, ...

真不好意思  不知道怎样给回复好的人加分  是给评分吗  还是给那个悬赏的分

使用特权

评论回复
8
dontium| | 2013-12-6 16:49 | 只看该作者
xielaibin 发表于 2013-12-6 16:44
真不好意思  不知道怎样给回复好的人加分  是给评分吗  还是给那个悬赏的分  ...

你试一下呗

使用特权

评论回复
9
xielaibin|  楼主 | 2013-12-6 16:57 | 只看该作者
dontium 发表于 2013-12-6 16:49
你试一下呗

你看看  是上面那样显示加威望那个东西吗?

使用特权

评论回复
10
dontium| | 2013-12-6 18:32 | 只看该作者
xielaibin 发表于 2013-12-6 16:57
你看看  是上面那样显示加威望那个东西吗?


使用特权

评论回复
11
大道至简| | 2013-12-9 09:00 | 只看该作者
是汇编语言的一句话还是C语言的一句话?
C语言的一句话可能包含1000万次运算的

使用特权

评论回复
12
xielaibin|  楼主 | 2013-12-9 16:47 | 只看该作者
C
  不过问题已经解决了  谢谢了

使用特权

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

本版积分规则

38

主题

111

帖子

3

粉丝