栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【图文】【linux驱动、imx6ull核心板、FPGA、qt上位机、持续更新中···】打印机项目

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【图文】【linux驱动、imx6ull核心板、FPGA、qt上位机、持续更新中···】打印机项目

苦逼的研究生被导师压榨,连续肝3个项目同时进行,累死我了,咱们要好(fa)好(qi)学(fan)习(kang),天(顺)天(来)向(逆)上(受)。好了不闹了。

2022年5月10日20:26:28

浅谈linux驱动开发到imx6ull上,简单点说ubuntu下tftp通讯搭建好,imx6ull内核编译好,就打开万能的vscode,然后编译,通过tftp发送到核心板,多简(kun)单(nan)。具体看正点原子37linux内核移植,40字符设备开发,62spi驱动实验

spi驱动:CPOL, CPHA两个模式是spi通讯的基础,因为两个clk需要对应,所以通过极性和相位来合拍,所以就是这两参数设置模式的。具体程序参考正点原子的,我只是一个小白闪闪可怜没人爱,技术还菜。

实现的功能:spi不断发送数据。至于代码,抄啊,copy啊。

在驱动汇总写好myspi_write具体的函数
然后驱动和上一层关联
.write = myspi_write,   

主函数调用write即可,其余和c语言编程一样

static s32 myspi_write(struct icm20608_dev *dev, u8 *buf, u8 len)

{

	int ret;



	unsigned char txdata[len];

	struct spi_message m;

	struct spi_transfer *t;

	struct spi_device *spi = (struct spi_device *)dev->private_data;



	t = kzalloc(sizeof(struct spi_transfer), GFP_KERNEL);	

	gpio_set_value(dev->cs_gpio, 0);			



	

	t->tx_buf = buf;			

	t->len = len;				

	spi_message_init(&m);		

	spi_message_add_tail(t, &m);

	ret = spi_sync(spi, &m);	



	kfree(t);					

	gpio_set_value(dev->cs_gpio, 1);

	return ret;

}
//以下是主函数
filename = argv[1];

	fd = open(filename, O_RDWR);

	if(fd < 0) {

		printf("can't open file %srn", filename);

		return -1;

	}



	while (1) {

		ret = write(fd,databuf,sizeof(databuf));

		if(ret == 0) { 			

			printf("send:ok");

		}

		usleep(100000); 

	}

程序弄好以后,改一下makefile的输出xxxxx.o,之后在vscode的控制台中make -j32下就行

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882662.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号