- 博客(32)
- 收藏
- 关注
原创 指针函数、函数指针与递归函数
递归函数是指一个函数的函数体中直接或间接调用了该函数本身。函数指针 是指针,这个指针存放了函数的入口地址。首先,指针数组是一个数组,其内部存放的是指针。函数指针数组,也是一个数组,其内部存放的是函数的指针。
2024-08-31 15:54:43
715
原创 指针初阶(数组指针与二维数组)
定义一个指针,使其指向一个二维数组。int (*p)[3] ,其中的 [3] 表示该指针的步长为 3 个 int (一行),则 p 的类型为int (*)[3]/* 二维数组 *//* 行指针、其中 [3] 代表该指针的步长为(三个int) *//* 使 p 指向数组 a */p = a;2.使用行指针表示数组元素。
2024-08-30 11:57:12
372
原创 pinctl 和 gpio子系统驱动
同一个外设的 PIN 都放到一个节点里面,打开 imx6ull-14x14-evk.dts,在 iomuxc 节点中的“imx6ul-evk”子节点下添加 “pinctrl_test” 节点。
2024-08-21 21:31:44
973
原创 指针初阶(指针类型转换的使用、指针数组)
其他 float 等类型的指针也是一样,要是这段地址,你想以float类型去翻译它,只需定义一个 float * float_p 类型的指针指向首地址,然后 float_p[0] 就是我们需要的数据。
2024-08-18 23:02:35
602
原创 Linux进程间通信学习记录(消息队列)
①.消息队列是System V IPC对象的一种;②.消息队列是由消息队列ID来唯一表示;③.消息队列就是一个消息的列表。用户可以在消息队列中添加消息、读取消息等;④.消息队列可以按照类型来发送/接收消息,不同类型的消息是分别存储的。
2024-08-17 20:46:12
641
原创 Linux进程间通信学习记录(IPC 机制、共享内存以及信号灯集)
①.IPC对象包含:共享内存、消息队列和信号灯集。②.每个IPC对象有唯一的ID。③.IPC对象创建后一直存在,直到被显示地删除。④.每一个IPC对象有一个关联的KEY。(其他进程通过KEY访问对应的IPC对象)⑤.ipcs(显示系统所有的IPC对象)、ipcrm。
2024-08-17 17:42:51
936
原创 Linux进程间通信学习记录(有名管道)
①.对应管道文件,可用于任意进程之间进行通信。②.打开管道时可指定读写方式(打开管道时可指定读写方式)。③.通过文件IO操作,内容存放在内存中。
2024-08-17 15:06:30
400
原创 Linux线程间通信学习记录(线程互斥)
可见,加入互斥锁后,不会存在value1!= value2 的情况,即执行下面这段代码的时候不会被打断。即加锁后,其他任务无法对该临界资源进行操作。
2024-08-16 22:33:45
447
原创 Linux线程基础学习记录(线程的创建、回收以及结束)
创建一个线程,成功时返回(0),失败时返回错误码(errno)PC(程序计数器)和相关寄存器。回收线程资源,成功时返回0,失败返回错误码。进程中打开的文件描述符。结束当前的线程,释放该线程的私有资源。错误号(errno)调用线程阻塞直到pthread结束。线程属性,NULL则表示默认属性。: 线程对象,指定要回收的线程。:传递给线程执行函数的参数。: 接收线程返回值的地址。
2024-08-16 17:00:58
326
原创 Linux设备树下的LED驱动实验(正点原子学习笔记)
1.在.dts文件中创建相应地设备节点2.编写驱动程序,获取设备树中的相关属性值3.使用获取到的有关属性值来初始化LED所使用的GPIO。
2024-08-12 22:47:25
218
原创 Linux新字符设备驱动开发---LED
define NEWCHRLED_CNT 1 /* 设备号个数 */#define NEWCHRLED_NAME "newchrled" /* 设备名称 */#define LEDOFF 0 /* 关灯 */#define LEDON 1 /* 开灯 *//* newchrled设备结构体 *//* 设备号 *//* cdev *//* 类 *//* 设备 */int major;/* 主设备号 */int minor;/* 次设备号 */
2024-07-18 23:18:52
130
原创 CCS配置MSPM0G3507(八)GPIO中断方式模拟编码器计数与测速
1.创建一组GPIO,并加入两个引脚进行配置(两个引脚的配置是一样的)2.将引脚设置为输入模式3.设置为浮空输入。
2024-07-07 11:39:34
8545
45
原创 CCS配置MSPM0G3507(七) 编码器(TIMER-QEI)
1.选择时钟源 BUSCLK2.时钟分频配置为1分频3.分频系数配置为14.若勾选 Start ,则生成程序后会自动开启定时器的计数,否则需手动在程序中开启5.Load Value 设置为65535。
2024-07-06 16:49:50
7092
20
原创 CCS配置MSPM0G3507(六) DMA串口发送
1.选择 BUSCLK 时钟源2.选择8分频3.设置为8位数据位、无校验位、一位停止位。
2024-07-05 14:36:25
2630
7
原创 CCS配置MSPM0G3507(三) PWM
1.PWM Profiles 配置为 Custom(自定义)2. 时钟源选择BUSCLK3.定时器时钟分频 Timer Clock Driver 选择为一分频4.时钟分频系数设为2565.软件将会自动计算出可调节的频率范围6.设置定时器的计数值,会影响最后的PWM频率7.若勾选 Start Timer 则生成代码后,定时器会自动开启计数。否则要在代码中手动设置。
2024-07-04 18:25:40
2250
原创 CCS配置MSPM0G3507(二) 通用定时器的基本功能
1.Timer Profiles 选择Custom(自定义)2.时钟源选择BUSCLK3.时钟分频(Timer Clock Dvider) 设置为一分频4.分频系数(Timer Clock Prescaler) 设置为256,软件会自动算出最小可设的周期与最大周期。5.选择向下计数6.Timer Mode 选为 Periodic Down Counting(周期下降计数)7.自己设置计时周期(要满足可设的范围)8.若勾选Start Timer,则生成的程序会自动开始计数。
2024-07-03 22:43:52
1952
原创 CCS配置MSPM0G3507(一) GPIO中断
1.配置GPIO口,设置为输入模式。2.设置为上拉输入(因为按下为低电平)3.开启中断,并设置为下降沿触发。
2024-07-03 17:50:52
2651
原创 STM32CubeMx配置工程(三)-PWM呼吸灯
配置PWM的具体参数,预分频系数为 71,自动重装载值为 499,定时器溢出频率,即PWM的周期,就是 72MHz/(71+1)/(499+1) = 2kHz。
2024-02-17 18:40:50
382
1
原创 STM32CubeMx配置工程(二)定时器中断
其中:Tclk:定时器的输入时钟频率(单位MHZ)Tout:定时器溢出时间(单位为us)eg;4999eg:7199如要定时1ms,Tclk已知为72Mhz,设置psc为719,arr为99,即可产生1ms中断。
2024-02-17 18:26:04
668
2
原创 vitrualbox报错 The VM session was aborted.
如果关闭不了声音,可以试试在任务管理器结束掉关于virtualbox的进程。
2023-11-06 23:53:25
222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人