@lonely 发表于 2021-4-18 13:29

MM32F0010 烧录口SWDIO设置为普通io问题

请教:如何把MM32F0010的烧录引脚SWDIO设置为普通io口呢?
1、现在按照正常初始化后是不能控制的,同样初始化程序其它io可以正常控制。
2、是不是烧录口初始化普通io需要其他操作?

,程序如下s32 main(void)
{
    GPIO_InitTypeDefGPIO_InitStructure;

    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
    GPIO_StructInit(&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4 | GPIO_Pin_13 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIOA->AFRL = 0x7777;
    GPIOA->AFRH = 0x7777;
    while(1)
    {
      i = 65535;
      (GPIOA->ODR&(1<<4))?(GPIOA->BRR=(1<<4)):(GPIOA->BSRR = (1<<4)); //示波器可以看到取反信号
      while(i){i--;asm("nop");}
      (GPIOA->ODR&(1<<13))?(GPIOA->BRR=(1<<13)):(GPIOA->BSRR = (1<<13));<font color="#ff0000">//示波器看不到取反信号</font>
      asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
      (GPIOA->ODR&(1<<15))?(GPIOA->BRR=(1<<15)):(GPIOA->BSRR = (1<<15));//示波器可以看到取反信号

    }
}





zhengshuai888 发表于 2021-4-18 15:02

需要配置成IO复用功能

lidi911 发表于 2021-4-18 15:40

需要配置成IO复用吧

@lonely 发表于 2021-4-18 16:41

已解决,初始化为 GPIOA->AFRH = 0x777777,可以配置PA13为输出,但是也就没有SWD功能,各单位注意了

嵌入小菜菜 发表于 2021-4-18 21:47

这个问题还没有遇到过,不知道怎么办。

maxking 发表于 2021-4-25 09:34

我遇到过,开始没意识到是第18脚的问题。配置为输出后,仿真写入程序,就无法再仿真了。以为是焊接不好,换了几个芯片还是一样。后来才发现是这个SWDIO不起作用了。也找不到既能仿真又能正常使用的好方法。

yangjiaxu 发表于 2021-5-19 23:21

如果按照ST的方式好像得需要先屏蔽SWD功能 再复用成普通IO

余三水 发表于 2021-5-20 08:54

直接操作寄存器赋值的话,容易出错,最好采用宏定义的方式,寄存器手册中给出了SWD解锁的操作的。

dongnanxibei 发表于 2021-5-21 16:52

还是看看手册怎么说的
页: [1]
查看完整版本: MM32F0010 烧录口SWDIO设置为普通io问题