欢赢 2023-10-09 14:22 采纳率: 100%
浏览 8
已结题

关于#stm32#的问题:把代码烧进stm32f103c8t6芯片中,从新烧入检测不到芯片

把代码烧进stm32f103c8t6芯片中,从新烧入检测不到芯片

img

#ifndef LED__H_
#define LED__H_
#include "sys.h"//#include "stm32f10x.h"
//#define LED1 PCout(13)

#define RCLK_PORT        GPIOB
#define RCLK_PIN         GPIO_Pin_5
#define RCLK_PORT_RCC    RCC_APB2Periph_GPIOB

#define SRCLK_PORT        GPIOB
#define SRCLK_PIN         GPIO_Pin_3
#define SRCLK_PORT_RCC    RCC_APB2Periph_GPIOB

#define SER_PORT        GPIOB
#define SER_PIN         GPIO_Pin_4
#define SER_PORT_RCC    RCC_APB2Periph_GPIOB

//GPIO 0->15
#define LEDDZ_COL_PORT        GPIOA
#define LEDDZ_COL_PIN     GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7

#define LEDDZ_COL_PORT_RCC    RCC_APB2Periph_GPIOA

#define SER     PBout(4)
#define RCLK     PBout(5)
#define SRCLK     PBout(3)

#define SRC    PBout(2)

void LEDInit(void);
void LEDDZ_ROW_Write_data(u8 dat);

#endif  //LED__H_


#include "led.h"
#include "delay.h"
void LEDInit()
{
    GPIO_InitTypeDef GPIO_InitStruct;
    //1.¿ªÆôÓ²¼þʱÖÓ
    RCC_APB2PeriphClockCmd(RCLK_PORT_RCC,ENABLE);
    RCC_APB2PeriphClockCmd(SRCLK_PORT_RCC,ENABLE);
    RCC_APB2PeriphClockCmd(SER_PORT_RCC ,ENABLE);
    RCC_APB2PeriphClockCmd(LEDDZ_COL_PORT_RCC ,ENABLE);
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
    
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
    
    
    GPIO_InitStruct.GPIO_Pin=RCLK_PIN;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
   GPIO_Init(RCLK_PORT,&GPIO_InitStruct);
    
    
    GPIO_InitStruct.GPIO_Pin=SRCLK_PIN;
   GPIO_Init(SRCLK_PORT,&GPIO_InitStruct);
     
     GPIO_InitStruct.GPIO_Pin=SER_PIN;
   GPIO_Init(SER_PORT,&GPIO_InitStruct);
    
    GPIO_InitStruct.GPIO_Pin=LEDDZ_COL_PIN;
   GPIO_Init(LEDDZ_COL_PORT,&GPIO_InitStruct);
    
    
}

void LEDDZ_ROW_Write_data(u8 dat){
    
    u8 i=0;
    for(i=0;i<8;i++){
        
        SER=dat>>7;
        SRCLK=0;
        delay_us(1);
        SRCLK=1;
        delay_us(1);
        
    }
    RCLK=0;
    delay_us(1);
    RCLK=1;
    
}

void LEDDZ_COL_Write_Data(u8 data ){

    u8 i=0;

    

}


#include "stm32f10x.h"
#include "delay.h" // ??????????
#include "led.h"


int main(void) {
  
    int i;
    
delay_init();
LEDInit();    
    while(1){
        for(i=0;i<8;i++){
            GPIO_Write(GPIOA,0x01<<1);
            delay_us(100);
        }
    
    }
}

  • 写回答

3条回答 默认 最新

  • qllaoda 2023-10-09 14:44
    关注

    有可能是前一次烧的代码禁用了SWD,试试手动进入复位模式

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 10月9日

悬赏问题

  • ¥15 为什么shp文件会有这种小方块?
  • ¥15 ecplise在连接数据库时显示加载驱动成功但是数据库连接失败
  • ¥15 visionmaster启动失败,提示为“机器不满足授权而被禁用”
  • ¥15 IDEA中圈复杂度如何具体设置
  • ¥50 labview采集不了数据
  • ¥15 Multisim红外倒车雷达仿真中距离问题
  • ¥15 请上面代码做什么处理或什么混淆
  • ¥15 英雄联盟自定义房间置顶
  • ¥15 W5500网线插上无反应
  • ¥15 如何用字典的Key,显示在WPF的xaml中