esp8266~SPI使用

void Send_cmd(uint8 command)

{

SpiData pDat;

pDat.cmd = command; ///< Command value

pDat.cmdLen = 1; ///< Command byte length

pDat.addr = NULL; ///< Point to address value

pDat.addrLen = 0; ///< Address byte length

pDat.data = NULL; ///< Point to data buffer

pDat.dataLen = 0; ///< Data byte length.

SPIMasterSendData(SpiNum_HSPI, &pDat);

}

/******************************************************************************

  • FunctionName : user_init

  • Description : entry of user application, init user function here

  • Parameters : none

  • Returns : none

*******************************************************************************/

void user_init(void)

{

uint8 cmd = 0xaa;

uint32 addr = 0xbbcc;

uint32 data[2] = { 0x11223344, 0x55667788 };

spi_initialize();

printf(“Starting SPI Communication\n”);

while (1) {

Send_cmd(0x34);

SpiData pDat;

pDat.cmd = cmd; ///< Command value

pDat.cmdLen = 1; ///< Command byte length

pDat.addr = &addr; ///< Point to address value

pDat.addrLen = 2; ///< Address byte length

pDat.data = data; ///< Point to data buffer

pDat.dataLen = sizeof(data); ///< Data byte length.

SPIMasterSendData(SpiNum_HSPI, &pDat);

vTaskDelay(100);

}

}

二. 软件SPI

软件SPI可能速度较慢,我自己测试了IO口速度大概是1.75翻转一次,也就是570k,比串口速度好多了。

用例:

LOCAL void spi_task(void *pvParameters)

{

SOFT_SPI_INIT();

while(1){

softspi_write_byte(0x08);

softspi_write_byte(0x03);

softspi_write_byte(0x04);

softspi_write_byte(0x0A);

vTaskDelay(5);

//printf(“spi test\n”);

}

vTaskDelete(NULL);

}

驱动代码 :

/*

  • soft spi.c

  • Created on: 2018年8月10日

  •  Author: Hynson
    

*/

#include “soft_spi.h”

/* spi write one byte */

void ICACHE_FLASH_ATTR softspi_write_byte(u8 data)

{

u8 i;

CS_0();

for(i = 0; i < 8; i++){

if (data & 0x80){

MOSI_1();

}else{

MOSI_0();

}

SCK_0();

data <<= 1;

SCK_1();

}

CS_1();

}

/* spi read one byte */

u8 ICACHE_FLASH_ATTR softspi_read_byte(void)

{

u8 read = 0;

u8 i;

CS_0();

for (i = 0; i < 8; i++){

SCK_0();

read = read<<1;

if (MISO_IS_HIGH()){

read++;

}

SCK_1();

}

CS_1();

return read;

}

/*

  • soft_spi.h

  • Created on: 2018年11月24日

  •  Author: Hynson
    

*/

#ifndef _SOFT_SPI_H

#define _SOFT_SPI_H

#include “c_types.h”

#include “gpio.h”

#include “esp8266/gpio_register.h”

#include “esp8266/eagle_soc.h”

#include “esp8266/pin_mux_register.h”

#include “esp8266/ets_sys.h”

#define SPI_MISO 12

#define SPI_MOSI 13

#define SPI_SCK 14

#define SPI_CS 15

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
326)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值