完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想在 PSOC 和 ST 之间实现 I2C 通信。
我已将 PSoc 配置为 I2C Master,将 ST 配置为 I2C Slave。我已成功将数据从 PSoc 传输到 ST,但无法从 ST 读取数据。 这是有关我的实施的详细信息。 当我在 PSoc 端使用 I2C_Write_Data 函数时,我没有遇到从 PSoC 到 ST 的数据传输问题 我以前没有在 ST 端实现 I2C Slave。我可能使用了错误的 API 或犯了一些配置错误。 我附上了有关实施的图片。(代码和配置)。如果你能阐明这个问题,我将不胜感激。这是我在这个网站上的第一篇文章,所以请忽略我关于这个主题的错误) 祝你今天过得愉快.. 1- ST I2C 从机代码 2- St CubeMx I2C 从机配置 3- 赛普拉斯 I2C 主机功能 4- 赛普拉斯 I2C 配置 |
|
相关推荐
1个回答
|
|
我通过在 PSoC 和 ST 端增加 I2C 函数的超时值并将 PSoC 端的 I2CM_I2C_ACK_DATA 更改为 I2CM_I2C_NAK_DATA 解决了这个问题。我已经将两侧的超时值更新为 0xFF 而不是 200。并且我已经将通信的数据速率设置为 400khz 作为快速模式。这是我用于正确操作的功能。
//PSoC I2C 主机 // //函数和定义// #define I2C_TIMEOUT 0xFF #define SLAVE_ADDR 0x43 void I2C_Write_Data(uint8_t 从机地址,uint8_t I2C_Data) { I2CM_I2CMasterSendStart(从机地址,I2CM_I2C_WRITE_XFER_MODE,I2C_TIMEOUT); I2CM_I2CMasterWriteByte(I2C_Data, I2C_TIMEOUT); I2CM_I2CMasterSendStop(I2C_TIMEOUT); } uint8_t I2C_Read_Data(uint8_t 从机地址) { uint8_t I2C_BUFFER = 0; I2CM_I2CMasterSendStart(从机地址,I2CM_I2C_READ_XFER_MODE,I2C_TIMEOUT); I2CM_I2CMasterReadByte(I2CM_I2C_NAK_DATA,&I2C_BUFFER,I2C_TIMEOUT); I2CM_I2CMasterSendStop(I2C_TIMEOUT); 返回 I2C_BUFFER; } //主功能// I2C_Write_Data(SLAVE_ADDR, 0xA0); uint8_t I2C_RECEIVE_BUF = I2C_Read_Data(SLAVE_ADDR); // 返回发送到 ST 从站的相同数据。0xA0。 //ST I2C从机-主要功能// uint8_t I2C_BUFFER = 0; 而(HAL_I2C_GetState(&hi2cs)!= HAL_I2C_STATE_READY); HAL_I2C_Slave_Receive(&hi2cs, &I2C_BUFFER, 1, HAL_MAX_DELAY); 开关(I2C_BUFFER) { 案例 0xA0: uint8_t I2C_TRANSMIT_BUFFER = 0xA0; HAL_I2C_Slave_Transmit(&hi2cs, &I2C_TRANSMIT_BUFFER,1,HAL_MAX_DELAY); 休息; } |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2718 浏览 1 评论
3235 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1807 浏览 1 评论
3643 浏览 6 评论
6031 浏览 21 评论
1333浏览 4评论
208浏览 3评论
195浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
348浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
440浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 00:03 , Processed in 1.166504 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号