- 博客(62)
- 收藏
- 关注
原创 4.19FreeRTOS
它允许任务等待多个事件的状态,并且可以在任何事件被设置时唤醒等待的任务。通过设置定时器,可以让某个任务在指定的时间后执行,实现任务的延时启动或周期性执行。队列、信号量、互斥量、事件组需要被创建所以消耗的资源比较多、任务通知不需要被创建消耗的资源少。队列、信号量、互斥量、事件组在使用之前都需要先创建,才能使用,任务通知无需创建即可使用。5.根据文档和录屏学习一下软件定时器,了解软件定时器的作用和软件定时器和硬件定时器的区别。信号量是一个长度为1的特殊队列,长度为1的空间用于存储信号量的计数值。
2024-04-19 17:20:32 281
原创 4.18FreeRTOS
使用 xTaskCreateStatic函数创建动态创建任务不需要指定具体的栈,只需要指出栈的大小,展会通过pvPortMalloc动态创建。静态创建任务一般用于确任务数量确定的场景,静态创建任务时会创建一个数组,数组太大会导致内存不足。调度算法:抢占式调度:优先级高的任务可以打断低优先级任务的执行,适用于不同优先级任务的执行。2.静态创建任务和动态创建任务的区别,以及动态创建任务和静态创建任务的源码分析步骤。挂起->就绪:使用vTaskResume函数让任务进入就绪态。运行->阻塞:等待时间进入阻塞态。
2024-04-18 16:53:10 305
原创 4.17freeRTOS
根据采样数值调节LED灯亮度:根据光敏电阻的采样数值,可以确定环境光的强度。根据采样数值的大小,调整PWM的占空比,从而改变LED灯的亮度。uint16_t Size:要发送的数据字节数(数据的长度),strlen可以计算字符串的长度,使用sizeof计算的是字符串所占内存的大小。配置DMA:使用DMA(直接内存访问)可以实现数据的高速传输,减少CPU的负载。配置空闲中断:在DMA传输完成后,可以通过空闲中断来触发处理数据的操作。在空闲中断中可以读取DMA传输的数据,并进行相应的处理。
2024-04-17 19:08:02 266
原创 4.16freeRTOS
3.配置魔术棒Debug设置中在Flash downald页面选中Reset and Run 在Pack中取消Enable。选择需要操作的引脚选择模式,更改高低电平。2.build编译修改的文件 rebuild编译全部文件。2.总结STM32Cubemx的使用方法和需要注意的事项。1.总结keil5下载代码和编译代码需要注意的事项。3.总结STM32Cubemx配置GPIO的方法。7.勾选复制必要的库到文件、生成.c.h文件。单片机的内存较小,烧录只拷贝必要的库文件。设置模块独立生成.c和.h文件。
2024-04-16 17:35:03 233
原创 4.9QT
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面。“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能。完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面。要求:基于属性版实现对话框的弹出。
2024-04-09 21:03:50 514
原创 4.8QT
将登录按钮使用qt4版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空。使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数。将按钮3,基于qt4版本连接实现点击按钮3,实现关闭窗口。
2024-04-08 19:14:58 299
原创 3.26C++
定义一个矩形类(Rectangle),包含私有成员:长(length)、宽(width),展示函数输出该矩形的周长和面积:void show()设置长度:void set_l(int l)设置宽度:void set_w(int w)获取长度:int get_l();获取宽度:int get_w();
2024-03-26 20:43:17 214
原创 3.25C++
指针指向的内容不可变。定义自己的命名空间,其中有string类型的变量,再定义两个函数,一个函数完成字符串的输入,一个函数完成求字符串长度,再定义一个全局函数完成对该字符串的反转。正确的声明应该是const char* p;指针指向的内容和指针的指向都不可变。指针指向的内容和指针的指向都不可变。这里定义了一个指向常量字符的指针p 指针指向的内容不可变。正确的声明应该是char* const p;
2024-03-25 19:17:21 492
原创 3.20网络编程
1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。4> 展示出工资在10000到20000之间的所有工人信息。2> 添加三条工人信息(可以完整信息,也可以非完整信息)3> 修改某一个工人的薪资(确定的一个)6> 工厂倒闭,删除整个工人信息库。5> 删除掉指定姓名工人的信息。
2024-03-20 18:43:31 351
原创 3.19网络编程
select实现的TCP并发服务器。select实现的TCP客户端。poll实现的TCP并发服务器。poll实现的TCP客户端。
2024-03-19 19:43:33 235
原创 3.8IO作业
1:编写链表,链表里面随便搞点数据 使用 fprintf 将链表中所有的数据,保存到文件中 使用 fscanf 读取文件中的数据,写入链表中,实现,当按 ctrl + c的时候,保存链表。2:编写2个.c文件,生成2个可执行文件 1.c 输入正方形的长和宽 或者 三角形的三边长 2.c 输出长方形或者三角形的面积 要求数据通信使用无名管道实现。3:使用有名管道,实现2个终端之间的互相聊天功能 要求:能够并发。
2024-03-09 19:48:24 345
原创 IO3.5作业
作业2: 使用循环+fork的形式。创建一条进程链,链条上总共有100个进程 要求:程序不崩溃。作业1: 1:使用write 和 read 实现 文件夹拷贝功能,不考虑递归拷贝。
2024-03-05 18:55:14 314
原创 3.1 IO进程线程
使用提供的getch函数,编写一个专门用来输入密码的函数,要求输入密码的时候,显示 * 号,输入回车的时候,密码输入结束。使用fwrite、fread将一张随意的bmp图片,修改成德国的国旗。
2024-03-01 19:54:09 334
原创 2.29IO进程线程
编写链表,链表里面随便搞点数据 使用 fprintf 将链表中所有的数据,保存到文件中 使用 fscanf 读取文件中的数据,写入链表中。
2024-02-29 19:37:32 416
原创 已知序列画出二叉树
中序:ABCDEFGHI 后序:ACEDBHIGF。先序:ABCDEFGH 中序:BDCEAFHG。先序:FBDCAEGIH。后序:DECBHGFA。
2024-02-28 09:21:32 338
原创 数据结构day1
定义一个学生结构体,包含结构体成员:身高,姓名,成绩;定义一个结构体数组有7个成员,要求终端输入结构体成员的值,根据学生成绩,进行冒泡排序。 #include <stdio.h>#include <string.h>typedef struct students{ float high; char name[10]; float grade;}stu;int main(int argc, const char *argv[]){ stu a[7]; stu
2024-02-19 17:55:58 580 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人