|
HAL_I2C_Mem_Write(&hi2c1,0x80,HDC2080_DI_REG,1,data1,1,100); while (HAL_I2C_GetState(&hi2c1) != HAL_I2C_STATE_READY); if (HAL_SPI_GetState(&hspi2) != HAL_SPI_STATE_READY) { // SPI ???,????????? Error_Handler(); } HAL_SPI_Transmit_DMA(&hspi2, new_wave, sizeof(new_wave)); 现象:当data1=0x00 时,SPI+GPDMA正常发送,当data1不等于0x00 时比如0x01等,GPDMA并不能使能。把IIC代码注释了,能够正常发送SPI+GPMDA。IIC确实是能通信的。 |
L9663驱动开发
STM32G071C8的ADC问题,测量6路交流信号,端口使用PA2-PA7,信号来自电流互感器次级用20欧电阻转为电压信号,并联T4,通过1K,104滤波后到ADC引脚,个别芯片出现PA3结果是固定值,即使直接把引脚对地短短接,结果也是2000多个数,可能是什么原因
使用STM32H7A3的FMC接口驱动LCD 是否可以用DMA传输数据
STM32F3系列SDADC外部触发 DMA运输的bug
在stm32cubeAI上,打开Lanuch NeuralNet Studio提示打不开
STM32F1 SPI2 无法通信
串口DMA收发出现ORE错误
STM32H563的QSPI接口不能读取W25Q256的后128MB数据
STM32C5 HAL SPI CRC 错误无法触发错误回调
HAL 库建议支持GPIO 同时配置为AF 与外部中断 EXTI
微信公众号
手机版
从你描述的情况来看,SPI的DMA使能本来跟I2C是没有关系的,只是基于你现在的代码逻辑流程,
由于I2C的启动执行没能正常运行,导致程序没法往下走,给你感觉SPI的DMA启动不了。
你现在调用的HAL_I2C_Mem_Write()是个阻塞式的写函数,直到写完或发生异常才会退出。
你在这里对data1是地址指针,给它赋值00应该意味空指针,一会0一会1,怎么感觉你在随心所欲地给它赋地址?