whyil
whyil
这家伙很懒,什么也没写!

注册于 6年前

回答
5
文章
0
关注者
0

发布于5年前

感谢楼主的分享:lol

发布于6年前

有zynq的bsp,但目前驱动还没特别的处理好,没有集成Xilinx的驱动库


ZYNQ这块以后会发布资料吗,我做数据采集用的是STM32,但现在感觉STM32做数据采集速度还是慢了,要换成ZYNQ。

发布于6年前

[i=s] 本帖最后由 whyil 于 2018-8-10 15:55 编辑 [/i]

分析下是否因为的FIFO的原因?造成数量处理出错?


不是FIFO的原因,我DEBUG了一下,发现是SPI 的CR2寄存器数据是乱的
原因是hspi.Init.NSSPMode没有被初始化,里面的数据是乱的,导致DS [3:0]:数据大小 (Data size) = 16位,所以发出了16个脉冲,

在初始化里将这句加上去就好了

  1. if (cfg->mode & RT_SPI_MSB)
  2. {
  3. hspi.Init.FirstBit = SPI_FIRSTBIT_MSB;
  4. }
  5. else
  6. {
  7. hspi.Init.FirstBit = SPI_FIRSTBIT_LSB;
  8. }
  9. hspi.Init.TIMode = SPI_TIMODE_DISABLE;
  10. hspi.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  11. hspi.Init.CRCPolynomial = 7;
  12. //NSSPMode 未初始化,导致SPI_CR2寄存器数据错误
  13. hspi.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
  14. hspi.State = HAL_SPI_STATE_RESET;
  15. if (HAL_SPI_Init(&hspi) != HAL_OK)
  16. {
  17. return RT_EIO;
  18. }
  19. __HAL_SPI_ENABLE(&hspi);
  20. return RT_EOK;

发布于6年前

不建议,虽说也能用,但是不建议这么做,中断中提供信号量等同步信息,让主线程去实现功能才是正道,在终端 …


我试了下载rt-thread 的pin设备的外部中断函数中可以使用rt_kprintf可以用。别的就没试过了,准备试一下。

发布于6年前

看看

回到
顶部

发布
问题

投诉
建议