- 博客(63)
- 收藏
- 关注
原创 2022-10-11使用ioctl函数实现LED灯,蜂鸣器,风扇的驱动工作
首先是led灯的头文件部分。然后是蜂鸣器的驱动部分代码。然后是蜂鸣器的头文件部分。后面是风扇的头文件部分。最后是应用层的实现代码(三个器件一起初始化使用)然后是 myled.c的驱动文件。
2022-10-11 19:14:01
325
原创 2022-10-10 LED灯驱动开发
然后将编译好的myled.ko 文件和a.out可执行文件 拷贝到挂载目录下 ~/nfs/rootfs/首先在ubuntu中对myled.c进行编译:make arch=arm modname=myled。然后对test.c进行编译 arm-linux-gnueabihf-gcc test.c ,首先是myled.c的代码。然后是test.c的代码。Makefile的代码。
2022-10-10 20:53:03
422
原创 2022-10-6 SPI实验(数码管)(复习)
4.时钟由Master控制,在时钟移位脉 冲下,数据按位传输,高位在前,低位在后(MSB first) 5.SPI接口有2根单向数据线,为全双工 通信,目前应用中的数据速率可达几Mbps的水平。• (4)/SS:从器件使能信号,由主器件控制(片选)7.本次实验:SOC数码管。• (1)MOSI:主器件数据输出,从器件数据输入。• (2)MISO:主器件数据输入,从器件数据输出。• (3)SCLK :时钟信号,由主器件产生。SPI硬件的连接有如下。最后是主函数的调用部分。
2022-10-06 15:47:46
665
原创 2022-10-5 IIC实验(测温湿度)(复习)
1)同一个板子两个芯片之间的通信 stm32mp157aSI7006 2)两个设备之间的通信 SOCTarget 2.I2C总线为两线制,只有两根双向信号线。4.IIC总线传输速率 低速 100k 中速 400k 全速 3.4M 5.IIC总线需要接两个上拉电阻,这两个上拉电阻作用在IIC总线为空闲状态时保持高电平。然后是功能函数部分,包括初始化,开始,结束, 写字节,读字节,等待应答,还有应答包和非应答包。主机给从机发送多个字节。主机给从机发送一个字节。
2022-10-06 15:22:39
143
原创 2022-10-4按键中断实验(复习)
2.需要分析GPIOF章节:设置引脚为输入模式 .需要分析EXTI章节:检测中断的触发方式。首先是头文件部分,包含了对GPIO,EXTI,以及GIC这三个的初始化函数。最后是主函数的调用部分,将三那个章节初始化完成后就可以直接运行了。1.RCC章节/GPIOF章节/EXTI章节/GIC章节。3.需要分析GIC章节:设置GPIOF引脚对应的中断号。然后功能函数部分就是对这三个具体初始化的代码部分。通过对框图的分析可知。
2022-10-04 18:57:34
160
原创 2022-10-3 UART4串口通信A7核(复习)
包括了发送一个字节和接受一个字节,发送和接受字符串的话就通过发送和接受一个字节的代码,一个一个去接受和发送即可。下面是功能函数部分的代码,首先是对串口的初始化,需要分析GPIO章节和UART章节。串口一共有三根线RXD:接受数据线 TXD:发送数据线 GND:接地线。最后是主函数的调用,发送一个字节的时候回显+1的字符。首先来编写串口通信的头文件代码部分。
2022-10-03 12:17:01
295
原创 2022-10-2 PWM方波实验(复习)
PWM方波实验的内容是关于无源蜂鸣器的实验,包括了马达还有风扇,首先是代码头文件包含部分,包括对蜂鸣器,马达,风扇的初始化。下面是功能函数部分,对蜂鸣器以及其他两个设备RCC章节,GPIO章节还有TIM章节的分析和引脚配置,最后的是主函数部分,我稍做了一下修改,可以让蜂鸣器叫起来像莫斯电码的声音,主要是通过修改蜂鸣器的频率。三个设备分别一一对应注释部分直接复制之前的了,没有修改,大体就是把引脚对应一下即可。以上是头文件部分,三个设备的初始化,已经需要包含的库文件。
2022-10-02 14:22:00
271
原创 2022-10-1 ARM-LED灯实验(复习)
本次作业是对之前的总结复习,实际内容差不过,自己再过一边记忆更加深刻一点,首先是led灯实验头文件部分的代码包含(本次代码内容是进行过封装的,更规整一点)最后是main主函数的调用部分,调用初始化灯函数和亮灭函数,放进while循环内一直亮灭。其实是功能函数的代码段,包括对灯的初始化已经灯亮和灯灭的操作,亮灭结合到一个函数内了。本次实验将三个led灯结合在了一起写,最后调用的时候就选择了其中一个灯进行实验。
2022-10-01 21:33:06
335
1
原创 2022-9-27实现FSMP1A和ubuntu之间的网络连接
首先ubuntu必须安装tftp服务器和nfs服务器,并且在本地测试是成功的 2.关闭windows下防火墙 3.设置电脑的优先网卡为百兆全双工通信 控制面板---->网络和innet---->网络和共享中心t---->更改适配器配置----->找自己对应的以太网网卡----->右键----->属性 ----->配置 ----->高级 ----->连接速度和双工模式 ----->百兆全双工。测试ping命令:在串口工具中。
2022-09-28 19:52:08
654
原创 2022-9-21作业 PWM方波实验实现蜂鸣器,马达,风扇运转
首先是头文件部分,包括三个器件的初始化。然后是功能函数部分,实现三个器件的初始化,注释的内容直接复制蜂鸣器的有些没有改,以实际代码为主。最后是主函数的调用部分,对三个器件进行初始化。
2022-09-21 18:29:38
518
2
原创 2022-9-20 IIC实验实现温湿度传感器(A7核)
先是iic.c部分的代码,主要负责时序的内容(初始化,开始,结束,写入,读出,应答和非应答)最后是主函数的调用部分,应为iic不支持浮点型,所以需要转为整数然后通过取余来算小数。首先是整个函数的头文件部分包括IIC.h和si7006.h的内容。后面是si7006.c的代码内容,主要用于 温湿度的测量数字量。然后是功能函数部分的代码块,包括iic.c和si7006.c。然后是si7006的内容。
2022-09-20 19:44:01
328
原创 2022-9-19作业,按键中断相关实验(包括串口,红外感应,光电,火焰)
首先是gpic.c中的代码内容。然后是uart4的内容。最后是代码的运行结果图。
2022-09-19 18:51:19
161
原创 2022-9-17作业 按键中断实验(按下按键,在串口连接工具上显示对应的按键编号)
接着是key.c部分的代码,该部分的代码负责初始化各个寄存器。然后是do_irq.c部分的代码,该部分负责调用。最后是主函数的调用,只需要调用三个初始化函数即可。
2022-09-17 16:10:57
311
1
原创 2022-9-13 C语言电灯实验
首先是头文件部分代码 include/gpio.h。然后是功能代码部分 src/gpio.c。最后是主函数调用部分main.c。
2022-09-13 19:10:47
416
原创 2022-9-8 ARM汇编语言(keil)实现1~100内的数相加求和
【代码】2022-9-8 ARM汇编语言(keil)实现1~100内的数相加求和。
2022-09-08 19:23:29
3946
原创 2022-9-8 ARM汇编语言实现(keil软件) 求最大公约数
汇编指令:编译器将汇编指令编译生成机器码,执行一个特定的功能,占用代码段的空间。
2022-09-08 19:14:50
281
原创 2022-9-4QT实现迷你闹铃(定时播报指定内容)
widget.cpp部分代码,其中有两个图片地址是用来设置背景图和lab标签图。main.cpp部分,负责输出用,不需要多谢东西。首先是头文件部分内容,包含语音播报者,定时器等。最后是最终结果,和ui图。
2022-09-05 09:04:27
391
原创 2022-9-2 QT实现画板(能改变画笔大小,颜色)
后面是mywnd.cpp部分的代码。最后是main.cpp部分的代码。用QT实现画板功能,代码如下。首先是头文件部分代码。
2022-09-02 20:28:29
2111
原创 2022-8-31 C++实现按钮的点击,关闭,语言播报
最后的运行结构是,三个按钮,一个点击后播报关闭按钮的文本内容,然后点击一次后就不能再使用,中间恢复按钮是用来恢复第一个按钮继续可以,点击后,“点击”按钮就可以继续使用,第三个关闭按钮则是退出整个程序。然后是main.cpp的部分代码,该部分主要用于mywnd.cpp内的函数调用显示,不需要额外添加函数,只需要添加头文件即可。最后是.pro文件的内容,该内容是要添加播报者这个功能,就是在第一行gui后面空格,然后写入texttospecch。后面是mywnd.h的头文件已经配置部分。...
2022-08-31 18:46:40
1358
1
原创 2022-8-30C++实现动态队列
队列是一种数据结构,用链表和数组都可以实现,队列的特点就是先放入队列的数据先出队列。不过看到话题标签有Redis,猜测题主想问的应该是现在很广泛使用的消息队列(MQ)。这里的消息不只是简单的文本信息,也可以是。其核心作用都是先将消息数据通过系统接口按顺序放入队列(暂存于内存),需要时再按放入的顺序依次取出以作后续处理。...
2022-08-30 21:28:34
507
1
原创 2022-8-30 C++实现栈:判空,判满,入栈,出栈
推送和弹出操作被视为线性数据结构,或者更抽象地说是顺序集合,只发生在结构的一端,即堆栈的顶部。这使得将堆栈实现为单个链表和指向顶部元素的指针成为可能。如果堆栈已满,并且没有足够的空间接受要推送的实体,则堆栈被认为处于溢出状态。这种结构的名称“堆栈”来源于一组堆叠在一起的物理项目的类比,这使得从堆栈顶部取出一个项目变得容易,而到达堆栈中更深处的项目可能需要先取出多个上层的其他项目。元素从堆栈中取出的顺序产生了它的另一个名字,叫做后进先出。此外,查看操作可以在不修改堆栈的情况下访问顶部。......
2022-08-30 20:40:16
2676
1
原创 2022-8-25 C++继承作业
定义一个学生类:成员-->姓名、年龄、成绩以及相关函数。由学生类和老师类共同派生出研究生类:成员-->性别。定义一个老师类:成员-->年龄、职称以及相关函数。实例化就研究生类的对象,并输出该对象的所有信息。...
2022-08-25 19:57:03
303
2
原创 2022-8-16 IO多路复用-使用select实现tcp客户端
IO多路复用1.允许同时多个IO进行操作,内核一旦发现进程执行一个或多个IO事件,就会通知该进程。2.应用程序中同时处理多路输入输出流。
2022-08-16 19:21:38
1029
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人