
/IO初始化/ RCC->APB2ENR |= 0x0000001D; //使能GPIOA、GPIOB、GPIOC和AFIO AFIO->MAPR &= 0xF8FFFFFB; AFIO->MAPR |= 0x02000000; //开启SW-DP,关闭JTAG-DP AFIO->MAPR |= 0x00000004; //USART1映射至PB6、PB7 我的部分代码如上,主要功能是对SW-DP和USART1进行重映射,但是在AFIO->MAPR |= 0x01000000;这一句出现了错误。 我想要实现启用SW-DP和关闭JTAG-DP,应该写入010,但是写入该行后,却变成了100,如下图: 这就导致我的调试窗口直接断开了连接。 而且我用库函数LL_GPIO_AF_Remap_SWJ_NOJTAG();写入时也是一样的情况,其次我写入001时,也会变成010。 但是AFIO->MAPR |= 0x00000004;这行却不会出现类似问题。 所以不知道是怎么回事,想请教一下各位大佬。 |
stm32ide怎么正确的导出项目
STM32F105RBT6 2025年 ROSH REACH 报告
STM32CubeMX 使用"FW_F1 V1.8.6"生成FreeRTOS代码缺少"freertos_mpool.h"?
你好,我的setting里面设置都没有问题。但是显示failed download cortexm3
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
如何鉴别芯片的进口版本和国产版本
stm32f407无法配置定时器2为全部dma
cudeide执行run是烧录还是只是执行呢
cubeIDE在run后出现错误
[md]虽然这个解决了读取值与写入值不一样的问题,但是没有解决为什么写入010,会导致调试退出问题
该寄存器的这3个位是只写的,所以你按照寄存器的定义正确写入即可。
不过,根据我刚才测试来看,按照下面做法似乎可以读。
Value_Mapr0]= AFIO->MAPR ;
Value_Mapr1]= AFIO->MAPR ;
Value_Mapr2]= AFIO->MAPR ;
这三个位确实不可以读,我就算设置的时010,读回来的还是100,好像会左移一位;其次在写入的时候,很容易出错,如果没有按照正确的方式写入,就算写入的是010,也会出现调试断开的情况;
代码所示有两种写入方法,写入数据都是一样的,但是如果用注释里面的代码进行写入,就会写入出错,出现调试断开的情况。我百思不得其解,你也可以试一下。