代码改变世界

STM32 GPIOB_PIN3复用功能小分析

2013-08-15 16:55  居安  阅读(593)  评论(0编辑  收藏  举报

SI5326使用了PB3作为软件模拟i2c的时钟信号,但是PB3主功能是JTAG,其I/O功能被禁止,在使用软件模拟I2C,需要开启I/O功能,并禁止JTAG-DP和SW-DP。这需要配置AFIO_MAPR寄存器,具体如下:
   uint32_t* MAPR =  (uint32_t*)(AFIO_BASE+0X04);  //取得AFIO_MAPR地址
  RCC->APB2ENR|=(uint32_t)0x00000009;//先使能外设AFIO, IO PORTB时钟
  (*((uint32_t*)MAPR)) |=0X04000000;  //配置26~24配置为100,