如题,萌新第一次用SPI通讯麦克风,SPI配置如下: static void MX_SPI3_Init(void) { /* USER CODE BEGIN SPI3_Init 0 */ /* USER CODE END SPI3_Init 0 */ /* USER CODE BEGIN SPI3_Init 1 */ /* USER CODE END SPI3_Init 1 */ /* SPI3 parameter configuration*/ hspi3.Instance = SPI3; hspi3.Init.Mode = SPI_MODE_MASTER; hspi3.Init.Direction = SPI_DIRECTION_2LINES_RXONLY; hspi3.Init.DataSize = SPI_DATASIZE_16BIT; hspi3.Init.CLKPolarity = SPI_POLARITY_LOW; hspi3.Init.CLKPhase = SPI_PHASE_1EDGE; hspi3.Init.NSS = SPI_NSS_SOFT; hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi3.Init.TIMode = SPI_TIMODE_DISABLE; hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi3.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi3) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI3_Init 2 */ /* USER CODE END SPI3_Init 2 */ } 波特率2M的,符合芯片运行范围。但是在WHILE里如果只读SPI的数据是有读数的,如果加一个延时,不管延时多少就没读数了,示波器看了下时钟信号隔几十ms才跳一下。在DEBUG里单句运行寄存器DR是有读数的。 求各位大佬指点! |
f407与上位机,高速通讯。
STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
消防二总线通讯?
stm32f103 CAN通讯多帧发送问题?
ST 电机电机工作站,就是那个workbench的通讯协议是啥啊?
STM32F107作为USB主机模拟串口通讯不成功(采用PL2303芯片)
stm32F1单片机iic主从模式通讯
串口通讯偶尔出现故障,不能自行恢复,如何解决
stm32f103zet6串口通讯过程中报ORE错误
求助,丐版J-Link通讯不上
评分
查看全部评分
while (1)
{HAL_SPI_Receive_DMA(&hspi3,adc12buff,4); }
循环里这样写是有读数的,但是如果在后面加个delay就没了,一直是0x00偶尔跳一下0xFF,但是debug里这一句设断点会发现寄存器DR是有读数的。