完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
把i2c的默认PB12,PB13映射到PB20,PB21,调用映射设置函数,具体初始化,如下:
GPIOPinRemap( ENABLE , RB_PIN_I2C );//映射到PB20/PB21 GPIOB_ModeCfg( GPIO_Pin_20 | GPIO_Pin_21, GPIO_ModeOut_PP_5mA); //GPIO_ModeIN_PU );主机 I2C_Init( I2C_Mode_I2C, 400000, I2C_DutyCycle_16_9, I2C_Ack_Enable, I2C_AckAddr_7bit, TxAddr ); 测试映射不成功,求帮助 |
|
相关推荐
4个回答
|
|
看了设置驱动映射函数描述,没有I2C的输入描述,是否不支持此功能呀?驱动库的函数如下:
/******************************************************************************* * Function Name : GPIOPinRemap * Description : 外设功能引脚映射 * Input : s: ENABLE - 引脚映射 DISABLE - 默认引脚 perph: RB_PIN_SPI0 - SPI0: PA12/PA13/PA14/PA15 -> PB12/PB13/PB14/PB15 RB_PIN_UART1 - UART1: PA8/PA9 -> PB12/PB13 RB_PIN_UART0 - UART0: PB4/PB7 -> PA15/PA14 RB_PIN_TMR2 - TMR2: PA11 -> PB11 RB_PIN_TMR1 - TMR1: PA10 -> PB10 RB_PIN_TMR0 - TMR0: PA9 -> PB23 * Return : None *******************************************************************************/ void GPIOPinRemap( FunctionalState s, UINT16 perph ) { if( s ) R16_PIN_ALTERNATE |= perph; else R16_PIN_ALTERNATE &= ~perph; } |
|
|
|
|
|
|
|
非常感谢,测试完毕,i2c确实可以映射的;583的手册里说I2C需要选择正确时钟:2-36M,实际主频60M还是可以i2c的,不知道是手册未修正,还是高频时钟i2c会存在稳定性问题
|
|
|
|
CH582M的I2C调试分享,(费了一个礼拜时间排查):
现象: ①采用583的i2c实例对自己的CMOS摄像头的I2C进行测试,发现不好用;示波器测试没TCL和SDA信号输出; ②通过串口监视发现:while( I2C_GetFlagStatus( I2C_FLAG_BUSY ) != RESET ); 这个语句执行不过去; ③通过读i2c寄存器I2C_STAR2,并进行串口监控,发现寄存器位--BUSY位一直为1,因此就出现上面那个语句无法执行下去; |
|
|
|
只有小组成员才能发言,加入小组>>
261 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2739 浏览 2 评论
2256 浏览 1 评论
BLE-Dongle与CH9141-A核心板进行双向透传,无法接收到串口数据怎么解决?
488浏览 7评论
226浏览 4评论
主机NRF52832从机ch9141,ch9141断电后无法发送数据怎么解决?
407浏览 3评论
295浏览 3评论
281浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 20:29 , Processed in 0.905541 second(s), Total 52, Slave 46 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号