如题,萌新第一次用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是有读数的。 求各位大佬指点! |
STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
stm32f103 CAN通讯多帧发送问题?
STM32F107作为USB主机模拟串口通讯不成功(采用PL2303芯片)
STM32F103C8 LIN通讯例程
求助,丐版J-Link通讯不上
ethernet可以与ethercat通讯吗?
LIS3DH SPI 通讯问题
STM32F373 CAN通讯问题CAN_FLAG_LEC
请教高手看看,STM32F1的多机通讯,地址匹配唤醒问题
CAN总线:如何利用程序(STM32)判断CAN总线的波特率/通讯协议?
评分
查看全部评分
while (1)
{HAL_SPI_Receive_DMA(&hspi3,adc12buff,4); }
循环里这样写是有读数的,但是如果在后面加个delay就没了,一直是0x00偶尔跳一下0xFF,但是debug里这一句设断点会发现寄存器DR是有读数的。