打印

串口下载可用、JLINK下载可用,可为感觉程序不能运行,求助

[复制链接]
3230|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
the_ether|  楼主 | 2013-3-6 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我自己做了一块STM32F103RBT6的最小系统板,现在串口下载程序可以用、JLINK下载也可以用,可就是下载的程序不能达到预期的效果。我设置的PB5输出高电平,可用万用表测PB5上的引脚,却一直为0。6V-1.2V左右。
我怀疑是自己的一键下载电路有问题,程序下进去了,但是就是没有运行。。我该怎么办啊。。怎么测。。着急,求助啊。
沙发
airwill| | 2013-3-6 19:17 | 只看该作者
1. 如果设置没问题, 外部有没有对地负载?
最好不要用万用表, 可以用示波器看.

使用特权

评论回复
板凳
the_ether|  楼主 | 2013-3-6 19:28 | 只看该作者
airwill 发表于 2013-3-6 19:17
1. 如果设置没问题, 外部有没有对地负载?
最好不要用万用表, 可以用示波器看. ...

啥叫对地负载呀。我STM32的所有管脚都没有接限流电阻的,这个应该没事吧。

使用特权

评论回复
地板
uet_cache| | 2013-3-6 21:10 | 只看该作者
你用仿真试试,看你的没运行是程序没执行到位置还是执行到不起作用。

使用特权

评论回复
5
cjhk| | 2013-3-6 21:17 | 只看该作者
楼主的意思应该是说的相对与地来说的负载   呵呵   应该是的吧

使用特权

评论回复
6
the_ether|  楼主 | 2013-3-7 19:56 | 只看该作者
问题已经解决了,不是硬件上得问题,就是出在程序上。就是系统时钟函数的问题。
void MYRCC_DeInit(void)
{                                                                                                                            
        RCC->APB1RSTR = 0x00000000;//复位结束                         
        RCC->APB2RSTR = 0x00000000;
          
          RCC->AHBENR = 0x00000014;//睡眠模式闪存和SRAM时钟使能.其他关闭          
          RCC->APB2ENR = 0x00000000;//外设时钟关闭                          
          RCC->APB1ENR = 0x00000000;//外设时钟关闭   
        RCC->CR |= 0x00000001;     //使能内部高速时钟HSION                                                                                                                                  
        RCC->CFGR &= 0xF8FF0000;   //没有时钟输出、PLL16倍频输出、HSE2分频、HSE时钟作为PLL输入时钟                                         
        RCC->CR &= 0xFEF6FFFF;     //复位HSEON,CSSON,PLLON
        RCC->CR &= 0xFFFBFFFF;     //复位HSEBYP                     
        RCC->CFGR &= 0xFF80FFFF;   //复位PLLSRC, PLLXTPRE, PLLMUL[3:0] and USBPRE
        RCC->CIR = 0x00000000;     //关闭所有中断
}
//系统时钟初始化函数
//pll:选择的倍频数,从2开始,最大值为16       
void Stm32_Clock_Init(u8 PLL)
{
        u8 temp=0;
        MYRCC_DeInit();   
        RCC->CR|=0x00010000;  //外部高速时钟使能HSEON
        while(!(RCC->CR>>17));//等待外部时钟就绪
        RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
        PLL-=2;//抵消2个单位
        RCC->CFGR|=PLL<<18;   //设置PLL值 2~16
        RCC->CFGR|=1<<16;          //PLLSRC ON
        FLASH->ACR|=0x32;          //FLASH 2个延时周期

        RCC->CR|=0x01000000;  //PLLON
        while(!(RCC->CR>>25));//等待PLL锁定
        RCC->CFGR|=0x00000002;//PLL作为系统时钟         
        while(temp!=0x02)     //等待PLL作为系统时钟设置成功
        {   
                temp=RCC->CFGR>>2;
                temp&=0x03;
        }   
}                    

使用特权

评论回复
7
jxmzzr| | 2013-3-8 10:32 | 只看该作者
一般来说硬件问题的可能性很小,大部分是程序问题所致

使用特权

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

本版积分规则

个人签名:书到用时方恨少,事非经过不知难。

13

主题

95

帖子

0

粉丝