完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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吗? |
|
相关推荐
2个回答
|
|
将各个功能分配给不同的引脚,也就是说每个引脚只承担一个功能,就不会出现冲突的现象了。
|
|
|
|
在STM32F103C8芯片上,UART1和I2C1是共享GPIO引脚的,因此需要正确配置引脚映射,以避免冲突。
在您的情况下,当I2C1_REMAP关闭时,UART1的发送功能受到影响,当I2C1_REMAP打开时,CAN的发送功能受到影响。 要解决这个问题,您可以尝试以下方法之一: 1. 将UART1与I2C1映射到不同的引脚: 将UART1映射到其他引脚,而不是PB7和PB6。您可以使用GPIO_PinRemapConfig函数选择其他引脚作为UART1的TX和RX。这样,无论I2C1_REMAP是打开还是关闭,UART1的发送和接收都应该正常工作。 2. 将CAN与I2C1映射到不同的引脚: 将CAN的TX和RX引脚从PB9和PB8改为其他引脚,然后保留I2C1_REMAP打开。这样,无论I2C1_REMAP是打开还是关闭,CAN的发送和接收都应该正常工作。 请注意,为了使CAN和串口正常工作,您需要在代码中相应地更改引脚映射。 希望这些方法能帮助您解决冲突问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1115 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1140 浏览 1 评论
572 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
428 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1026 浏览 2 评论
1614浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
281浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
291浏览 3评论
276浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
253浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-20 16:44 , Processed in 0.962991 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号