首页 > 其他分享 >HC32L110+spi 调试SX1268

HC32L110+spi 调试SX1268

时间:2023-12-06 18:13:36浏览次数:43  
标签:u8Data SPI u32TimeOut HC32L110 SX1268 spi Spi SPIConfig

1.官网下载例程

https://www.xhsc.com.cn/Productlist/info.aspx?itemid=1751

2.找到spi例程 开始暴改

改动1.

en_result_t Spi_SendData(uint8_t u8Data)
{
     uint32_t u32TimeOut;
    
     u32TimeOut = 1000;
     M0P_SPI->DATA = u8Data;
    
     while(u32TimeOut--)
     {
         if(TRUE == Spi_GetStatus(SpiIf))
         {
             break;
         }
     }
     if(u32TimeOut == 0)
     {
         return ErrorTimeout;
     }
     u8Data  =  M0P_SPI->DATA;
     return Ok;
}

改动为

en_result_t Spi_SendData(uint8_t u8Data)
{
     uint32_t u32TimeOut;
    
     u32TimeOut = 1000;
     M0P_SPI->DATA = u8Data;
    
     while(--u32TimeOut)
     {
         if(TRUE == Spi_GetStatus(SpiIf))
         {
             break;
         }
     }
     if(u32TimeOut == 0)
     {
         return ErrorTimeout;
     }
     u8Data  =  M0P_SPI->DATA;
     return Ok;
}

原来的(--u32TimeOut执行后会为0XFFFFFFF,后续条件判断不执行。

3,SPI配置

Gpio_SetFunc_SPI_CS_P02(); 
Gpio_SetFunc_SPIMISO_P35();
Gpio_SetFunc_SPIMOSI_P36();
Gpio_SetFunc_SPI_SCK_P01();//配置功能脚
  
  stc_spi_config_t  SPIConfig;
  Spi_SetCS(TRUE);
  //配置SPI
  SPIConfig.bCPHA = Spicphafirst;
  SPIConfig.bCPOL = Spicpollow;
  SPIConfig.bIrqEn = FALSE;
  SPIConfig.bMasterMode = SpiMaster;
  
  SPIConfig.u8BaudRate = SpiClkDiv2; //时钟
  SPIConfig.pfnIrqCb = NULL;
  Spi_Init(&SPIConfig); //初始化

标签:u8Data,SPI,u32TimeOut,HC32L110,SX1268,spi,Spi,SPIConfig
From: https://www.cnblogs.com/xiumusheng/p/17880198.html

相关文章

  • nordic的nrf52系列32M速率的SPI-SPIM3
    简介:在nordic的nrf52系列中的nrf52833和nrf52840的SPIM3都是支持最大32M的spi速率,其余的只有8M,当在需要刷屏,或者一些需要高速32M-SPI时,这是一个很好的使用方式,下面我就结合GPIOTE+PPI+SPIM3实现无CPU参与的32M-SPI数据发送:测试环境:软件:SDK_17.1,在ble_app_uart例子中添加硬件:nrf......
  • 32-SPI通信
    软件模拟的SPI和硬件实现SPI(SPI外设)SPI(串行外设接口)协议四根通信线:SCK(串行时钟线) MOSI(Masteroutputslaveinput)主机输出从机输入    MISO(主机输入从机输出)    SS(从机选择)有时也叫CS      MOSI和MISO有时也叫DO和DI同步,全双工 主机的波特率......
  • sping_boot学习系列-搭建springboot项目工程
    搭建springboot工程方式一.通过idea SpringInitializr搭建详细步骤:1.创建一个新项目File->New->Project...2.项目环境配置选择SpringInitializr(20231205:注最低版本是jdk17,若搭建jdk8版本的,可先搭建jdk17版本的,修改pom.xml文件)默认即可,可修改项目名称选择maven......
  • Spin 基于rust 开发的开源运行基于webassembly serverless 工具
    spin是基于rust开发的,可以用来开发以及运行基于webassemblyserverless服务的工具包含的特性提供了周边扩展 默认wasm只提供了基本类型的支持,wasm提供了不少扩展可以方便的支持不同语言的调用(比如网络,数据库访问)提供了快速应该开发的cli提供了服务部署的能力 包含了本地测试......
  • 【GD32307E-START】03 SPI-OLED显示模块移植
    【GD32307E-START】03SPI-OLED显示模块移植软硬件平台GD32F307E-STARTBoard开发板GCCMakefile|接口|说明||--------|-----------------------------------------------||GND|电源地......
  • 【驱动】SPI驱动分析(六)-RK SPI驱动分析
    前言Linux的spi接口驱动实现目录在kernel\drivers\spi下。这个目录和一些层次比较明显的驱动目录布局不同,全放在这个文件夹下,因此还是只好通过看Kconfig和Makefile来找找思路先看Makefile,里面关键几行:obj-$(CONFIG_SPI_MASTER)+=spi.o//这个是针对有spi控制器的soc选项,一......
  • 【驱动】SPI驱动分析(五)-模拟SPI驱动
    简介模拟SPI驱动是一种软件实现的SPI总线驱动。在没有硬件SPI控制器的系统中,通过软件模拟实现SPI总线的功能。它允许在不修改硬件的情况下,通过GPIO(通用输入/输出)引脚模拟SPI总线的通信,从而与SPI设备进行数据交换。模拟SPI驱动相对于硬件SPI来说,可能会有一定的性能损失,因为软件模......
  • spine 3.8.75 导出到unity
    下载spine-unity运行库spine-unity-3.8-2021.unitypackagehttp://zh.esotericsoftware.com/spine-unity-download/?eqid=97a447270004c44a0000000564268a631.导出文件把  (1).atlas修改成 (1).atlas.txt2.JSON文件版本号"spine":"3.8.75"修改成"spine":&quo......
  • FPGA 实现SPI 主机双工通信 CS前后肩可调 操作时钟频率可调 ,SPI模式可调,传输位宽可
    1//testbench2`timescale1ns/1ns3modulelcd_spi_m_tb();4regrst_n_i;5regspi_clkx_i;6reg[31:0]spi_data_i;7regspi_start;8regspi_miso_r1,spi_miso_r2;9wirespi_miso_i;10wire[0:0]spi_done;11wir......
  • SPI扩展点在业务中的使用及原理分析
    1什么是SPISPI全称ServiceProviderInterface。面向接口编程中,我们会根据不同的业务抽象出不同的接口,然后根据不同的业务实现建立不同规则的类,因此一个接口会实现多个实现类,在具体调用过程中,指定对应的实现类,当业务发生变化时会导致新增一个新的实现类,亦或是导致已经存在的类......