你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32l051c8 + adc + dac

[复制链接]
gronau 提问时间:2015-2-28 12:40 /
我们现在用STM32L051来设计一款变送器模块。4~20mA 接口。MCU通过ADC(SPI接口) 采集传感器输出 的信号。因为我们要求ADC的采样率达到50ksps,因此对Mcu的运行效率有非常高的要求,因此官网的HAL库就满足不了(已经试过了),必须用直接操作寄存器的方式来进行。但是SPI接口配置后,启动ADC采集,ADC也输出数据,但是MCU 的SPI接口接收中断标志位就是不置位(RXNE)。不知道什么原因啊。
收藏 评论9 发布时间:2015-2-28 12:40

举报

9个回答
子曰小玖 回答时间:2015-2-28 12:46:45
能贴点代码吗?
gronau 回答时间:2015-2-28 13:06:33
void MX_SPI2_Config(void)
{

  /* Enable the peripheral clock SPI2 */
  RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;

  /* DISABLE TXE IT */
  SPI2->CR2 &= ~(SPI_CR2_TXEIE | SPI_CR2_ERRIE | SPI_CR2_FRF | SPI_CR2_SSOE | SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN);

  /* MASTER MODE, SCK IDLE HIGH */  
  SPI2->CR1 = SPI_CR1_MSTR | SPI_CR1_CPOL;

  /* NSS SOFT  */   
  SPI2->CR1 |= SPI_CR1_SSM | SPI_CR1_SSI;

    /* RXNE IT */
  SPI2->CR2 |= SPI_CR2_RXNEIE;

  /* 16 bit frame mode */
  SPI2->CR1 |= SPI_CR1_DFF;

  /* Enable SPI2 */   
  SPI2->CR1 |= SPI_CR1_SPE;

  /* Configure IT */
  /* Set priority for SPI2_IRQn */
  NVIC_SetPriority(SPI2_IRQn, 5);

  /* Enable SPI2_IRQn */  
  NVIC_EnableIRQ(SPI2_IRQn);  

}

gronau 回答时间:2015-2-28 13:08:33
即使调试的时候单步执行RXNE也不置位。
gronau 回答时间:2015-2-28 13:09:38
看datasheet上说只要接收到最后一个位后RXNE就置位,可以接收SPI->DR的数据了。
gronau 回答时间:2015-2-28 13:31:05
void MX_EXTADC_Read(void)
{
  /* Define the buffer of Data */
  uint16_t AdcData = 0x0000;

  /* Make the EXTDAC_CS to high and disable the EXTDAC */
  MX_EXTDAC_CS_High();

  /* Make the EXTADC_CNV to low */  
  MX_EXTADC_CNV_Low();

  /* Make the EXTADC_CNV to high */  
  MX_EXTADC_CNV_High();

  /* Make the EXTADC_CNV to low */  
  MX_EXTADC_CNV_Low();

  /* Generate sck signal */
  MX_SPI2_SendWord(0xFFFF);

  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");  

}

gronau 回答时间:2015-2-28 13:44:30
void SPI2_IRQHandler(void)
{   
if((SPI2->SR & SPI_SR_RXNE) == SPI_SR_RXNE)
{
   SPI2_Data = SPI2->DR;
}
}
lkl0305 回答时间:2015-2-28 20:39:25
学习了
gronau 回答时间:2015-3-2 10:28:54
就没有能解决问题的人吗?
mado115 回答时间:2015-3-2 11:11:33
DMA不够用吗

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版