
/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;这行却不会出现类似问题。 所以不知道是怎么回事,想请教一下各位大佬。 |
串口DMA + 空闲中断收发 ?
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
基于STM32F103的HAL库实现USB(HID) OTA升级
使用CubeMX选择芯片生成项目时如何选择外部晶振?
WS2812B怎么显示任意字符 / 图案?
STM32F103RCT6 定位孔 镂空,会影响使用吗?
HAL库1.8.4在做破坏性测试的时候出现g_state永远为busy的情况导致串口通信发送卡死
L9663驱动开发
用rt_thread 环境编写,DAP-LINK 下载烧录,每一次空芯片下载之后就无法二次下载。求解
stm32cubemx F103芯片tim3 encoder模式pc6和pc7引脚,自动生成代码缺少gpio映射。
[md]虽然这个解决了读取值与写入值不一样的问题,但是没有解决为什么写入010,会导致调试退出问题
该寄存器的这3个位是只写的,所以你按照寄存器的定义正确写入即可。
不过,根据我刚才测试来看,按照下面做法似乎可以读。
Value_Mapr0]= AFIO->MAPR ;
Value_Mapr1]= AFIO->MAPR ;
Value_Mapr2]= AFIO->MAPR ;
这三个位确实不可以读,我就算设置的时010,读回来的还是100,好像会左移一位;其次在写入的时候,很容易出错,如果没有按照正确的方式写入,就算写入的是010,也会出现调试断开的情况;
代码所示有两种写入方法,写入数据都是一样的,但是如果用注释里面的代码进行写入,就会写入出错,出现调试断开的情况。我百思不得其解,你也可以试一下。