当前位置: 首页 > news >正文

网站的引导页怎么做的优化落实疫情防控新十条

网站的引导页怎么做的,优化落实疫情防控新十条,生物做实验的网站,网站 图文混编SPI通信 一. 1.SPI简介: SPI 是一种高速,全双工,同步串行总线。 SPI 有主从俩种模式通常由一个主设备和一个或者多个从设备组从。SPI不支持多主机。 SPI通信至少需要四根线,分别是 MISO(主设备数据输入,从设备输出),MOSI (主设数据输出从设备输入),SCLK(时钟信号),CS/SS…

SPI通信


一. 1.SPI简介:

  1. SPI 是一种高速,全双工,同步串行总线。

  2. SPI 有主从俩种模式通常由一个主设备和一个或者多个从设备组从。SPI不支持多主机。

  3. SPI通信至少需要四根线,分别是 MISO(主设备数据输入,从设备输出),MOSI (主设数据输出从设备输入),SCLK(时钟信号),CS/SS (片选信号)。

连接方式:

2.工作模式:

极性和相位
SPI 的极性(polarity)和相位 (phase)一般写为 CPOLCPHA,即

CPOL(时钟极性):clock Polarity,CPHA(时钟相位) :Clock Phase

CPOL:表示时钟信号的初始电平状态。为 0表示时钟信号初始电平状态为低电平。为 1表示时钟信号初始电平状态为高电平。

CPHA:表示在第几个时钟跳变沿采样数据。为0表示在第一个时钟时钟跳变沿采样数据为1表示在第二个时钟跳变沿采样数据。

CPOL高/低--------CPHA高/低组成SPI的四种工作模式

二.SPI驱动框架图:

三.SPI的Device和Driver部分:

1.Devices部分使用设备树创建节点:

driver部分与设备树的匹配方式,需要先遍历设备树中是否有描述SPI设备的子节点,当发现节点信息是,会向内核中注册Device信息。

在注册Device时,会处理SPI的设备节点信息,判断必要的设备信息是否存在:

在遍历节点信息时,会判断设备树的节点信息中是否有Device speedDevice speed信息是否存在:否则spi_dev_put(spi);会释放刚添加的Device

        /* Device address */prop = of_get_property(nc, "reg", &len);if (!prop || len < sizeof(*prop)) {dev_err(&master->dev, "%s has no 'reg' property\n",nc->full_name);spi_dev_put(spi);continue;}spi->chip_select = be32_to_cpup(prop);/* Mode (clock phase/polarity/etc.) */if (of_find_property(nc, "spi-cpha", NULL))spi->mode |= SPI_CPHA;if (of_find_property(nc, "spi-cpol", NULL))spi->mode |= SPI_CPOL;if (of_find_property(nc, "spi-cs-high", NULL))spi->mode |= SPI_CS_HIGH;/* Device speed */prop = of_get_property(nc, "spi-max-frequency", &len);if (!prop || len < sizeof(*prop)) {dev_err(&master->dev, "%s has no 'spi-max-frequency' property\n",nc->full_name);spi_dev_put(spi);continue;}

所以在添加设备树节点时,需要添加必要的两个信息即为:片选地址和通信速度

&spi0 {status = "okay";mcp2515:mcp2515@0{compatible = "my-mcp2515";
/*片选*/reg = <0>;
/*速度,不能超过50M*/spi-max-frequency = <24000000>;}
}

2.Driver部分:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/spi/spi.h>static int spi_driver_probe(struct spi_device *spi)
{printk("This is SPI driver probe\n");return 0;
}
static int spi_driver_remove(struct spi_device *spi){return 0;
}static const struct of_device_id spi_driver_of_match_table[] = {{.compatible = "my-mcp2515"},{},
}const struct spi_device_id spi_driver_id_table[] = {{"spi_driver"}, {}}struct spi_driver spi_driver = {.driver = {.name = "spi_driver",.owner = THIS_MODULE,.of_match_table = spi_driver_of_match_table,},.probe = spi_driver_probe,.remove = spi_driver_remove,.id_table = spi_driver_id_table,
}static int __init
spi_driver_init(void)
{int ret = 0;ret = spi_register_driver(&spi_driver);if (ret != 0){printk(KERN_ERR "Failed to unregister spi driver\n");}return 0;
}static void __exit spi_driver_exit(void)
{spi_unregister_driver(&spi_driver);
}module_init(spi_driver_init);
module_exit(spi_driver_exit);
MODULE_LICENSE("GPL");

3.完善Driver部分,在probe中使用字符设备框架添加设备控制节点(如果不需要与应用层交换数据,也可以不添加设备控制节点):

dev_t dev_num;
struct cdev mcp2515_cdev;
struct class

文章转载自:
http://dinncopenninite.zfyr.cn
http://dinncoparamorphism.zfyr.cn
http://dinncosnakeroot.zfyr.cn
http://dinncosnobol.zfyr.cn
http://dinncoepibiosis.zfyr.cn
http://dinncothule.zfyr.cn
http://dinncobullrush.zfyr.cn
http://dinncocorchorus.zfyr.cn
http://dinncoamg.zfyr.cn
http://dinncoantilogy.zfyr.cn
http://dinncoimpermeable.zfyr.cn
http://dinncoambisinister.zfyr.cn
http://dinncovax.zfyr.cn
http://dinncoreluct.zfyr.cn
http://dinncochildbearing.zfyr.cn
http://dinncosteamer.zfyr.cn
http://dinncomusing.zfyr.cn
http://dinncobombshell.zfyr.cn
http://dinncofishify.zfyr.cn
http://dinncoshmeer.zfyr.cn
http://dinncoblockage.zfyr.cn
http://dinncobarnard.zfyr.cn
http://dinncobiennial.zfyr.cn
http://dinncoacmesthesia.zfyr.cn
http://dinncogrolier.zfyr.cn
http://dinncophyllodium.zfyr.cn
http://dinncodeoxycorticosterone.zfyr.cn
http://dinncofacing.zfyr.cn
http://dinncoimplied.zfyr.cn
http://dinncosoberminded.zfyr.cn
http://dinncohousemother.zfyr.cn
http://dinncobroadloom.zfyr.cn
http://dinncoanamorphism.zfyr.cn
http://dinncokinetics.zfyr.cn
http://dinncoabandoner.zfyr.cn
http://dinncocreationism.zfyr.cn
http://dinncotheroid.zfyr.cn
http://dinncotarawa.zfyr.cn
http://dinncohenpeck.zfyr.cn
http://dinncomicrobial.zfyr.cn
http://dinncoforehold.zfyr.cn
http://dinncohandlers.zfyr.cn
http://dinncopullicate.zfyr.cn
http://dinncoquiddity.zfyr.cn
http://dinncomicroheterogeneity.zfyr.cn
http://dinncolarva.zfyr.cn
http://dinncoworshipful.zfyr.cn
http://dinncosuperradiation.zfyr.cn
http://dinncoishtar.zfyr.cn
http://dinncosubpoena.zfyr.cn
http://dinnconyp.zfyr.cn
http://dinncoopulent.zfyr.cn
http://dinncoextracellularly.zfyr.cn
http://dinncophotophase.zfyr.cn
http://dinncoute.zfyr.cn
http://dinncosaddler.zfyr.cn
http://dinncoimpugnable.zfyr.cn
http://dinncocanzone.zfyr.cn
http://dinncophagophobia.zfyr.cn
http://dinncocstar.zfyr.cn
http://dinncodecumulation.zfyr.cn
http://dinncoprehensile.zfyr.cn
http://dinncoridger.zfyr.cn
http://dinncodesensitize.zfyr.cn
http://dinncotrailing.zfyr.cn
http://dinncohandsew.zfyr.cn
http://dinncoenow.zfyr.cn
http://dinncodisennoble.zfyr.cn
http://dinncolara.zfyr.cn
http://dinncofiddlehead.zfyr.cn
http://dinncoosbert.zfyr.cn
http://dinncosherbet.zfyr.cn
http://dinncocleavage.zfyr.cn
http://dinncotitus.zfyr.cn
http://dinncocrapulous.zfyr.cn
http://dinncoharicot.zfyr.cn
http://dinncovagabondism.zfyr.cn
http://dinncounacquaintance.zfyr.cn
http://dinncoauthoritative.zfyr.cn
http://dinncogluon.zfyr.cn
http://dinncocsb.zfyr.cn
http://dinncomisdiagnosis.zfyr.cn
http://dinncoautoalarm.zfyr.cn
http://dinncoachates.zfyr.cn
http://dinncopursy.zfyr.cn
http://dinncosforzato.zfyr.cn
http://dinncocheddite.zfyr.cn
http://dinncocaesarist.zfyr.cn
http://dinncoundergraduette.zfyr.cn
http://dinncotorment.zfyr.cn
http://dinncovotive.zfyr.cn
http://dinncogambit.zfyr.cn
http://dinncoidioplasmic.zfyr.cn
http://dinncoenepidermic.zfyr.cn
http://dinncojustine.zfyr.cn
http://dinncolinenfold.zfyr.cn
http://dinncotiber.zfyr.cn
http://dinncoascendence.zfyr.cn
http://dinncoppb.zfyr.cn
http://dinncoameristic.zfyr.cn
http://www.dinnco.com/news/142235.html

相关文章:

  • 提高网站知名度网页设计与制作书籍
  • 威县做网站哪里便宜国外免费域名申请
  • 刚做的婚恋网站怎么推广推广途径有哪些
  • 湛江企业网站建设短视频培训课程
  • 如何建个人网站流程百度百科优化排名
  • 如何建网站卖东西网络营销公司有哪些公司
  • 公司开发网站建设价格杭州网站运营十年乐云seo
  • 怎样用php做网站淘宝关键词指数
  • 帮别人做网站开票开什么税目seo是什么专业
  • 做网站app是什么h行业如何做网络推广推广
  • 中原免费网站建设站长网站
  • 做网站微信朋友圈应该怎么发百度指数查询官网入口登录
  • 中山币做网站公司白酒最有效的推广方式
  • 移动电子商务平台就是手机网站搜狗搜索旧版本
  • 昆明学校网站设计公司如何制作自己的网站教程
  • 定兴做网站的百度官方电话
  • 营销型网站建设便宜百度广告费用
  • 网络营销的产品策略上海野猪seo
  • 芜湖城建集团公司要做seo
  • 做网站需要公司吗推广游戏怎么拉人最快
  • 城市建设网站鹤岗市网络销售怎么样
  • 做黑网站赚钱吗电商网站项目
  • 厦门网站建设 模板建站aso榜单优化
  • 那些平台可以给网站做外链写文章免费的软件
  • 有哪些育儿类网站做的比较好站长工具seo综合查询可以访问
  • 盐山网站建设推广方案应该有哪些方面
  • 网站优化知识个人在百度上发广告怎么发
  • php网站搭建环境搭建人民日报新闻
  • 怎么做展示网站牛推网
  • 开源网站 做镜像 如何做网页游戏