完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试将数据从 STM32f446-nucleo 板(作为主板)发送到 stm32f469-disco 板(作为从板),但它无法正常工作, PS:每块板都单独连接到 PC 的 USB 端口。 主码 : int 主要(无效) { SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); /* 用户代码开始 2 */ 做 { 对于(我=0;我<255;我++) { ret = HAL_I2C_Master_Transmit(&hi2c1, i, data, 1, HAL_MAX_DELAY); } }while(ret!=HAL_OK); 而 (1) { } } 静态无效 MX_I2C1_Init(无效) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; 如果(HAL_I2C_Init(&hi2c1)!= HAL_OK) { 错误处理程序(); } } 从代码: int 主要(无效) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); /* 用户代码开始 2 */ 做 { ret = HAL_I2C_Slave_Receive(&hi2c1, data_r, 1, 10000); } 同时(ret!= HAL_OK); 而 (1) { } } 静态无效 MX_I2C1_Init(无效) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; 如果(HAL_I2C_Init(&hi2c1)!= HAL_OK) { 错误处理程序(); } } 其余部分由 CUBEMX 自动生成 |
|
相关推荐
1个回答
|
|
我正在尝试将数据从 stm32f446-nucleo 板(作为主板)发送到 stm32f469-disco 板(作为从板),但它无法正常工作, PS:每块板都单独连接到 PC 的 USB 端口。 主码 : int 主要(无效) { SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); /* 用户代码开始 2 */ 做 { 对于(我=0;我<255;我++) { ret = HAL_I2C_Master_Transmit(&hi2c1, i, data, 1, HAL_MAX_DELAY); } }while(ret!=HAL_OK); 而 (1) { } } 静态无效 MX_I2C1_Init(无效) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; 如果(HAL_I2C_Init(&hi2c1)!= HAL_OK) { 错误处理程序(); } } 从代码: int 主要(无效) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); /* 用户代码开始 2 */ 做 { ret = HAL_I2C_Slave_Receive(&hi2c1, data_r, 1, 10000); } 同时(ret!= HAL_OK); 而 (1) { } } 静态无效 MX_I2C1_Init(无效) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; 如果(HAL_I2C_Init(&hi2c1)!= HAL_OK) { 错误处理程序(); } } 其余部分由 CUBEMX 自动生成 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2567 浏览 1 评论
3191 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1761 浏览 1 评论
3586 浏览 6 评论
5962 浏览 21 评论
920浏览 4评论
1296浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
560浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1284浏览 3评论
1334浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 00:28 , Processed in 0.989099 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号