[MM32软件] MM32F0010 烧录口SWDIO设置为普通io问题

[复制链接]
 楼主| @lonely 发表于 2021-4-18 13:29 | 显示全部楼层 |阅读模式
请教:如何把MM32F0010的烧录引脚SWDIO设置为普通io口呢?
1、现在按照正常初始化后是不能控制的,同样初始化程序其它io可以正常控制。
2、是不是烧录口初始化普通io需要其他操作?

,程序如下
  1. s32 main(void)
  2. {
  3.     GPIO_InitTypeDef  GPIO_InitStructure;

  4.     RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
  5.     GPIO_StructInit(&GPIO_InitStructure);
  6.     GPIO_InitStructure.GPIO_Pin  =  GPIO_Pin_4 | GPIO_Pin_13 | GPIO_Pin_15;
  7.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  8.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  9.     GPIO_Init(GPIOA, &GPIO_InitStructure);

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

  20.     }
  21. }






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 | 显示全部楼层
还是看看手册怎么说的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

83

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

7

主题

83

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部