【图文】【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 */

	spi_message_add_tail(t, &m);/* 将spi_transfer添加到spi_message队列 */

	ret = spi_sync(spi, &m);	/* 同步发送 */



	kfree(t);					/* 释放内存 */

	gpio_set_value(dev->cs_gpio, 1);/* 片选拉高,释放ICM20608 */

	return ret;

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

	fd = open(filename, O_RDWR);

	if(fd < 0) {

		printf("can't open file %s\r\n", filename);

		return -1;

	}



	while (1) {

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

		if(ret == 0) { 			

			printf("send:ok");

		}

		usleep(100000); /*100ms */

	}

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

2023年7月3日12:36:35

我擦,一年前写的项目,那么一年后又回来继续搞,老板在催了。搞了pcb图

 

先来欣赏一下布线,看着就舒服 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小都爱吃小橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值