indeed嘻嘻哈哈 发表于 2021-6-11 08:45

HC32L13x官方提供的demo中SPI例程的时钟问题

hc32l13x_ddl_Rev1.9.2 Lite\example\spi该历程中的程序有几个疑问:1)、例程初始化未选择和设置系统时钟频率,没有初始化默认是多少呢?选择的是什么时钟源呢?   2)、修改此demo驱动SX1278芯片时出现“while(Spi_GetStatus(M0P_SPI0, SpiTxe) == FALSE);    //等待发送缓冲器空”和“while(Spi_GetStatus(M0P_SPI0, SpiTxe) == FALSE);    //等待发送缓冲器空”死循环问题,将判断状态由“SpiTxe,SpiRxne”改为“SpiBusy”规避了死循环,但是读出的数据全都是0,怀疑问题问题出在时钟上,还请各路大神指点一二

indeed嘻嘻哈哈 发表于 2021-6-17 10:02

我来结贴了!针对我的问题,查阅资料,手册最终调试成功,出现问题的原因应该是片选引脚,也重新配置了时钟之前使用的是默认的4M时钟,将时钟修改为48M设置好对应的分频系数。关于片选->手册中有这样一句话(– 在传输过程必需设置 SPIx_SSN.ssn 为 0,传输完成后必需设置 SPIx_SSN.ssn 为 1。)受此启发对片选重新设置后能实现通信,最后由于我移植的是stm32f103系列单片机的程序,时钟是72M的,HC32我配置为48M,定时器又重新修改了一下。最终实现了移植前平台的效果。

勇者无惧你和我 发表于 2021-6-11 08:47

这个是咋回事呢?持续关注这个帖子。

martinhu 发表于 2021-6-11 11:21

第一,关于时钟,用户手册的系统控制章节写明了,默认是RCH,如果什么都没配置,那么在进入main之前的systeminit.c里面有加载RCH 4MHz的语句。
第二,楼主改逻辑之前,建议多看看SPI协议和寄存器标志的意义

两只袜子 发表于 2021-6-17 10:56

哈哈,开悟就在一瞬间

NUANXIXIA 发表于 2021-9-10 11:33

大佬,我也是,卡在这里了,可否分享一下代码{:handshake:}

Alohaq 发表于 2023-10-27 08:26

martinhu 发表于 2021-6-11 11:21
第一,关于时钟,用户手册的系统控制章节写明了,默认是RCH,如果什么都没配置,那么在进入main之前的syste ...

如果一直寄存器nss一直拉低会怎样?
页: [1]
查看完整版本: HC32L13x官方提供的demo中SPI例程的时钟问题