首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发现与bluenrg ms之间的SPI连接

发现与bluenrg ms之间的SPI连接
EN

Stack Overflow用户
提问于 2016-09-05 23:52:32
回答 1查看 634关注 0票数 0

我正在与stm32f4探索委员会(stm43f407xx)合作一个项目,我想与一个SPBTLE (IDB05A1板)通信。

我使用的是SPI2和预分频器8(我有168 Mhz,apb1运行在42 Mhz,所以时钟是5.25Mhz),数据表上说spi时钟是蓝色的--ms的工作频率高达8 Mhz,但我无法与芯片通信。

我尝试了一个核板(spi1预分频器4),它的工作非常好,所以HW是好的,然后我尝试了两个发现板,但没有成功。

我已经检查了所有的连接和软件上的发现是相同的核板修改,只为针材料和时钟。

有谁和这个HW合作过,或者有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-07 23:36:55

我已经解决了!现在我解释了,我忘记了声明正确的中断处理程序,因为bluenrg使用了一个带有IRQ引脚的5线SPI,它必须通过中断来处理。

有趣的是,我使用的是预分频器16,因为否则它不能工作,我不知道为什么,因为使用预分频器8,SPI2的时钟频率低于最大8 8Mhz。下面是我的时钟初始化代码:

代码语言:javascript
复制
void SystemClock_Config(void) {

  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;

  __HAL_RCC_PWR_CLK_ENABLE();

  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 8;
  RCC_OscInitStruct.PLL.PLLN = 336;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  HAL_RCC_OscConfig(&RCC_OscInitStruct);

  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                          |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);

  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39338876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档