
ST芯片型号: STM32F103C8T6 PB7,PB6用于UART1 PB8,PB9用于做CAN. 问题:I2C1_REMAP关闭,影响PB7,PB6的UART1功能,导致UART1不能发送 I2C1_REMAP打开,影响PB9,PB8的CAN功能,导致CAN TX不能发送 具体如下: 使用PB7,PB6做IO口,需要做如下映射,才可以UART1, tx,rx正常工作: GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE); //Must remap I2C1, otherwise PB6 conficts 如果: GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE); 为disable,uart1 tx不能发送,rx接收正常. 根据芯片手册,也正常 复用功能 I2C1_REMAP = 0 I2C1_REMAP = 1 I2C1_SCL PB6 PB8 I2C1_SDA PB7 PB9 复用功能 USART1_REMAP = 1 USART1_TX PB6 USART1_RX PB7 由于PB6,PB7已经用于UART1, 所以需要将 I2C1_REMAP设置为1,切换到PB8,PB9. 但是PB8,PB9做can时,又与I2C1冲突了,导致PB9 can不能发送,但PB8 can接收正常. 复用功能 CAN_REMAP[1:0]=”10” CAN1_RX PB8 CAN1_TX PB9 怎样能解决这个冲突呢,是芯片设计bug吗? 谢谢! |
复用功能只能选择一个,串口1可以选择A9 A10,为什么要选择复用后的引脚呢? |
将各个功能分配给不同的引脚,也就是说每个引脚只承担一个功能,就不会出现冲突的现象了。 |
为避免冲突,在使用引脚的复用功能时,只选择一个外设模块,要么USART要么CAN。 |
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
串口DMA + 空闲中断收发 ?
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
WS2812B怎么显示任意字符 / 图案?
STM32F103RCT6 定位孔 镂空,会影响使用吗?
HAL库1.8.4在做破坏性测试的时候出现g_state永远为busy的情况导致串口通信发送卡死
L9663驱动开发
用rt_thread 环境编写,DAP-LINK 下载烧录,每一次空芯片下载之后就无法二次下载。求解
stm32cubemx F103芯片tim3 encoder模式pc6和pc7引脚,自动生成代码缺少gpio映射。