下面就是两个字节变成了一word-16bit 第二个字节 大概就是这样的解码啦 这就是解码出来的第一个数据 前面是bit位,下一个是字节位,下一个是word位 按照16字节来解码 因为可以自由的传输任意的字节数据,也可以在这里自己定义这个事情 这里就开始移植,看这个TI的意思是随便整,推荐自己实现SPI的接口: 下载最后一个 这里先说一下头文件如何加 我们的工作是要在代码里面实现STM32的SPI接口移植,然后在线测量所有的参数来更加详细的学习SPI。 先看懂给的代码,明白要干啥: 这些是TI的库 NSS管脚及我们熟知的片选信号,作为主设备NSS管脚为高电平,从设备NSS管脚为低电平。 这样 cs 自己换普通gpio,好像是自动的引脚有些问题 外部晶振为8MHz 1选择外部时钟HSE 8MHz 2PLL锁相环倍频9倍 3系统时钟来源选择为PLL 4设置APB1分频器为 /2 5使能CSS监视时钟 后来我找到了中文的数据手册 这个地方 4 种模式选择 打开窗口 打开中断 编译 Ok 这个是TI硬件层的所有东西,一会儿就重写 ti 的板子我用的少 中断状态 开启中断 开启中断引脚 下降边沿触发中断 这个有用 因为STM32的SPI中断和TI的中断对不上,下面就看HAL的API: SPI的中断有这些 所有的函数 中断 在main里面的文件 我要做的工作是在HAL文件里面构建STM32 SPI的硬件重构 需要实现的是ms和us的延时,CS的控制和收发功能 SPI函数 这里是延时和CS的实现 ADS1118的内部就可以不用管了。别看写的简单,debug也很耗时。 编译无错误,移植完成 可以看看ADS1118的定位 https://www.stmcu.com.cn/Designresource/detail/software/711298 术语表: Standard SPI: CLK, /CS, DI, DO, /WP, /Hold Dual SPI: CLK, /CS, IO0, IO1, /WP, /Hold Quad SPI: CLK, /CS, IO0, IO1, IO2, IO3 SIO0(serial io 0) |