打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HC32L176 SPI 速度只能达到2M CLK间隔也不一致
SPI 初始化代码
  1. stc_gpio_cfg_t GpioInitStruct;
  2.    
  3.     DDL_ZERO_STRUCT(GpioInitStruct);
  4.    
  5.     Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
  6.    
  7.     ///< SPI0引脚配置:主机
  8.     GpioInitStruct.enDrv = GpioDrvH;
  9.     GpioInitStruct.enDir = GpioDirOut;   
  10.     GpioInitStruct.bOutputVal = TRUE;

  11.     Gpio_Init(CV520_CS_PORT, CV520_CS_PIN, &GpioInitStruct);   
  12.     Gpio_Init(CV520_RST_PORT, CV520_RST_PIN, &GpioInitStruct);     
  13.     Gpio_Init(W25_CS_PORT, W25_CS_PIN, &GpioInitStruct);
  14.                                                                
  15.     Gpio_Init(SPI0_PORT, SPI0_CLK_PIN, &GpioInitStruct);            
  16.     Gpio_SetAfMode(SPI0_PORT, SPI0_CLK_PIN, GpioAf1);           ///<配置SPI0_SCK
  17.                                                                
  18.     Gpio_Init(SPI0_PORT, SPI0_MOSI_PIN, &GpioInitStruct);           
  19.     Gpio_SetAfMode(SPI0_PORT, SPI0_MOSI_PIN, GpioAf1);         ///<配置SPI0_MOSI
  20.                                                                
  21.     GpioInitStruct.enDir = GpioDirIn;   
  22.     GpioInitStruct.enPu = GpioPuEnable;
  23.     Gpio_Init(SPI0_PORT, SPI0_MISO_PIN, &GpioInitStruct);            
  24.     Gpio_SetAfMode(SPI0_PORT, SPI0_MISO_PIN, GpioAf1);         ///<配置SPI0_MISO
  25.    
  26.    
  27.     stc_spi_cfg_t  SpiInitStruct;
  28.    
  29.     ///< 打开外设时钟
  30.     Sysctrl_SetPeripheralGate(SysctrlPeripheralSpi0,TRUE);
  31.    
  32.     ///<复位模块
  33.     Reset_RstPeripheral0(ResetMskSpi0);
  34.    
  35.     //SPI0模块配置:主机
  36.     SpiInitStruct.enSpiMode = SpiMskMaster;     //配置位主机模式
  37.     SpiInitStruct.enPclkDiv = SpiClkMskDiv8;    //波特率:PCLK/2
  38.     SpiInitStruct.enCPHA    = SpiMskCphafirst;  //第一边沿采样
  39.     SpiInitStruct.enCPOL    = SpiMskcpollow;    //极性为低
  40.     Spi_Init(SPI_SPI0, &SpiInitStruct);
复制代码
系统时钟初始化 HCLK48 PCLK 48
  1. ///<请注意根据外部晶振配置宏——[SYSTEM_XTH],如果使用PLL,XTH必须小于24MHz
  2. static void SystemClkInit_PLL48M_byXTH(void)
  3. {
  4.     stc_sysctrl_pll_cfg_t stcPLLCfg;   
  5.    
  6.     ///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为SYSTEM_XTH = 8MHz
  7.     Sysctrl_SetXTHFreq(SysctrlXthFreq4_8MHz);
  8.     Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);
  9.     Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);
  10.     Sysctrl_ClkSourceEnable(SysctrlClkXTH, TRUE);
  11.     delay1ms(10);
  12.    
  13.     stcPLLCfg.enInFreq    = SysctrlPllInFreq6_12MHz;    //XTH 8MHz
  14.     stcPLLCfg.enOutFreq   = SysctrlPllOutFreq36_48MHz;  //PLL 输出
  15.     stcPLLCfg.enPllClkSrc = SysctrlPllXthXtal;          //输入时钟源选择XTH
  16.     stcPLLCfg.enPllMul    = SysctrlPllMul6;             //8MHz x 6 = 48MHz
  17.     Sysctrl_SetPLLFreq(&stcPLLCfg);
  18.    
  19.     ///< 当使用的时钟源HCLK大于24M:设置FLASH 读等待周期为1 cycle(默认值也为1 cycle)
  20.     Flash_WaitCycle(FlashWaitCycle1);   

  21.     ///< 使能PLL
  22.     Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);   
  23.     ///< 时钟切换到PLL
  24.     Sysctrl_SysClkSwitch(SysctrlClkPLL);
  25. //    ///PCLK时钟分频4分频 12M
  26. //    Sysctrl_SetPCLKDiv(SysctrlPclkDiv4);
  27. }
复制代码




已解决
逻辑分析仪采样设置的有问题
速度可以达到6M
    

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
主流软件无线电芯片AD9361学习笔记
STM32F030 Nucleo
硬件工程师必须要知道的“英文缩写” | MCU加油站
软件模拟SPI接口程序代码(4种模式)
stm32串口程序(全)
ZYNQ学习笔记之时钟相关
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服