智能车制作

标题: 求助,STM32好像不工作 [打印本页]

作者: yejiaan    时间: 2013-5-9 10:25
标题: 求助,STM32好像不工作
自己做的PCB,用万用表测得单片机电源3.3V,晶振2V。设置GPIOB0为高电平,但用万用表测得是0V,其他IO口的情况也是一样,程序如下
#include "stm32f10x.h"   
GPIO_InitTypeDef GPIO_InitStructure;  
int main()  
{  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;     
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
    GPIO_Init(GPIOB, &GPIO_InitStructure);   
    GPIO_SetBits(GPIOB, GPIO_Pin_2);  
    while(1);  
}  


用Keil  download时输出的信息如下:
Target info:
------------
Device: STM32F103C8
VTarget = 3.313V
State of Pins:
TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints:          4
JTAG speed: 2000 kHz

Erase Done.
Programming Done.
Verify OK.



不知道问题的原因,恳求各位大神帮帮忙!

作者: 1006110218    时间: 2013-5-9 14:20
你自己再系统时钟初始化一次,试试,我认为应该是时钟初始化出的问题
作者: yejiaan    时间: 2013-5-10 13:27
1006110218 发表于 2013-5-9 14:20
你自己再系统时钟初始化一次,试试,我认为应该是时钟初始化出的问题

我按你的说法试了还是不行,请问硬件电路有问题吗?

作者: 1006110218    时间: 2013-5-10 20:17
yejiaan 发表于 2013-5-10 13:27
我按你的说法试了还是不行,请问硬件电路有问题吗?

你的复位电路接上按键,你下载程序时,按下复位键就好使了,再下载程序,应该就好使了


作者: yejiaan    时间: 2013-5-11 15:49
1006110218 发表于 2013-5-10 20:17
你的复位电路接上按键,你下载程序时,按下复位键就好使了,再下载程序,应该就好使了

谢谢你的解答,但我还没找到问题所在!用以下的程序试了一整天,试着试着今天下午突然可以了,测到PB14、15有高电平了

#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
int main( void )
{  
         //SystemInit();
       
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_6 | GPIO_Pin_14 | GPIO_Pin_15;  
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

    GPIO_Init(GPIOB, &GPIO_InitStructure);
    while(1)
                {
                        //GPIO_SetBits(GPIOB, GPIO_Pin_0 |GPIO_Pin_1 | GPIO_Pin_6 | GPIO_Pin_14 | GPIO_Pin_15);
                }
}




作者: yejiaan    时间: 2013-5-11 16:05
1006110218 发表于 2013-5-10 20:17
你的复位电路接上按键,你下载程序时,按下复位键就好使了,再下载程序,应该就好使了

我发觉用while(1)时不行,用for(;;)时可以,感觉好诡异

作者: 984161380    时间: 2013-7-31 10:48





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2