spi驱动数码管
创始人
2024-03-08 06:49:05
0

spi是串行全双工同步通信,支持多从机模式,没有应答机制,可靠性方面存在劣势;

采用边沿采样,根据时钟极性和时钟相位,有四种数据传输方式(由时钟变化(极性,相位)决定;

因为是全双工,数据收发可以同时进行

每次传输的位数为8位或16位为单位,传输单位数不受限制

 如图,奇数边沿采样是在第一个时钟周期采样(读写数据

偶数边沿采样,是在第二个时钟周期采样

spi控制数码管的原理:

 主板线路连接了两个芯片,一个芯片用于控制数码管显示的数字,另一个用于控制哪个数码管显示。每个数码管有8位二进制表示(a,b,c,d....),4个数码管(G1,G2,G3,G4)用4位二进制数表示

 驱动代码编写:

1.首先添加设备树 

 

引用spi节点,写在根节点外;参考st的spi设备树,用grep "spi" * -nR 查找字符所在的文件

 4根线,statu=okay;传输速率设置10k

编译,拷贝到开发板 ~/tftpboot

2.将spi配置进内核

 3.驱动代码

#include 
#include 
#include 
int m74hc595_probe(struct spi_device *spi)
{char buf[]={0xf,0x6d};//向spi总线设备写入spi_write(spi,buf,sizeof(buf));return 0;
}
int m74hc595_remove(struct spi_device *spi)
{char buf[]={0xf,0};spi_write(spi,buf,sizeof(buf));  //写0,关闭数码管显示return 0;
}
struct of_device_id of_table[]={{.compatible="hqyj,m74hc595"},{},
};
//热插拔
MODULE_DEVICE_TABLE(of,of_table);
//定义spi对象并初始化
struct spi_driver m74hc595={.probe=m74hc595_probe,.remove=m74hc595_remove,.driver={.name="m74hc595",.of_match_table=of_table,},
};
module_spi_driver(m74hc595);
MODULE_LICENSE("GPL");

4.现象

相关内容

热门资讯

最新!靖国神社被起诉 据央视新闻,当地时间23日,二战时期被日军强制征兵的部分韩籍遇难者遗属向首尔中央地方法院提起诉讼,要...
靖国神社,被起诉! 当地时间23日,二战时期被日军强制征兵的部分韩籍遇难者遗属向首尔中央地方法院提起诉讼,要求日本靖国神...
国台办:为“台独”分裂势力为虎... 中新社北京12月24日电 (陈建新 李百加)国务院台办发言人彭庆恩24日在北京表示,凡危害国家主权、...
怀宁县清河乡“一站式”调解架起... 诉求“只进一扇门”,调处“最多跑一地”。在怀宁县清河乡,这不仅仅是一句口号,更是当地群众化解矛盾纠纷...
钧达股份:充分利用海南相关优惠... 证券之星消息,钧达股份(002865)12月23日在投资者关系平台上答复投资者关心的问题。 投资者提...
信用修复制度助力企业重塑信用 信用修复作为社会信用体系建设的关键环节,对于帮助信用主体纠正错误、重塑信用、重返市场具有不可替代的作...
《秦皇岛市餐厨废弃物管理条例》... 12月23日,记者从市政府新闻办召开的《秦皇岛市餐厨废弃物管理条例》(以下简称《条例》)颁布实施新闻...
最高法等三部门联合发布婚姻家庭... 家和万事兴,家齐国安宁。为深入学习贯彻党的二十大和二十届历次全会精神,贯彻落实习近平总书记关于注重家...
追债超9000万元遇阻!被告破... 12月23日,瀚川智能(688022)发布公告,近日公司收到江西省吉安市中级人民法院对公司出具的《民...