- 博客(63)
- 收藏
- 关注
原创 2024.4.3
创建队列有两种方式,动态创建使用xQueueCreate函数进行创建,静态创建使用xQueueCreateStatic函数进行创建。在中断中使用的个函数:xQueueSendToBackFromISR,是在任务中使用的:xQueueSendToBack。任务通知是多对一通信。3、队列、信号量、互斥量、事件组需要被创建,所以消耗的资源也是比较多。在FreeRTOS中,事件组允许任务等待多个事件的状态,并且可以在任何事件被设置时唤醒等待的任务。1、队列、信号量、互斥量、事件组在使用之前都需要先创建,才能使用。
2024-04-07 08:49:47
318
原创 2024.4.2
1、动态创建不需要指定具体的栈只需要指定栈的大小,栈会通过pvPortMalloc动态创建出来,静态创建任务需要具体的栈(通过数组来指定),提供栈的大小。Blocked->Ready:当等待的事件完成后,就进入就绪态(时间到了,等待到了信号量,互斥量)2.总结静态创建任务和动态创建任务的区别,以及动态创建任务和静态创建任务的源码分析步骤。Blocked:阻塞态,当任务在等待时间,或者是信号量,互斥量的时候进入阻塞态。抢占式调度适用于任务优先级不同的任务,时间片轮转适用于相同优先级的任务。
2024-04-03 08:43:38
453
原创 2024.4.1
UART_HandleTypeDef *huart:指定我们使用的哪个串口,需要指定串口1。const uint8_t *pData:要发送的数据。使用方法: 1、使用HAL_UARTEx_ReceiveToIdle_DMA()函数进行接收数据。uint16_t Size:要发送的数据的长度。const uint8_t *pData:要发送的数据。uint16_t Size:每次要接收多少个数据。uint8_t *pData:数据保存的地址。uint8_t *pData:数据保存的地址。
2024-04-02 08:39:38
1435
原创 2024.3.29
2.创建项目工程时,需要选择拷贝必要文件选项,这样可以防止内存不足,同样需要选择为每个模块生成单独的 .c 和 .h 文件,这样可以自动生成 .c 和 .h 文件。函数是用来初始化STM32设备的,当初始化完成后才能开始使用,所以当需要使用一些单片机的外设时,定义部分的代码要写在该初始化函数的下面。在编译代码时,一定要将自己写的代码编辑在 CODE BEGIN 和 CODE END 之间,否则重新生成代码时,自己所写的代码会被覆盖。始终配置的大小决定了单片机的运行速度,时钟越大,单片机运行速度越快。
2024-04-01 08:43:45
161
原创 2024.3.25
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面。“,并给出两个按钮Yes|No,用户迪纳基Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能。完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面。
2024-03-25 21:59:49
180
原创 2023.3.18
再封装一个狗这样类,共有继承于动物类,自己拓展的私有成员有:指针成员:腿的个数(整型 int count),共有成员函数:会叫:void speak()在这个场景中,我们可以将动物比作是不同的类,而每种动物表演则是类中的函数。而讲解员则是一个基类,他可以根据每种动物的特点和表演,进行相应的介绍。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。要求:分别完成基类和派生类中的:构造函数、析构函数、拷贝构造函数、拷贝赋值函数。1.封装一个动物的基类,类中有私有成员:姓名,颜色,指针成员年纪。
2024-03-18 21:37:19
348
原创 2024.3.13
1.设计一个Per类,类中包含私有成员:姓名、年龄、指针成员身高、体重,再设计一个Stu类,类中包含私有成员:成绩、Per类对象p1,设计这两个类的构造函数、析构函数和拷贝构造函数。
2024-03-13 21:24:57
390
原创 2024.3.12
要求:自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height),初始化函数:void init(int w, int h)输出该矩形的周长和面积函数:void show()更改宽度的函数:set_w(int w)更改高度的函数:set_h(int h)
2024-03-12 21:04:29
431
原创 2024.2.19
1.使用fread和fwrite完成两个文件的拷贝。2.使用read、write完成两个文件的拷贝。3.将时间在文件中跑起来。
2024-02-19 23:37:54
603
原创 2024.2.15
(arr+2)+3的地址是:0x1020+2*16 + 3*4=0x104c。arr[0]+2 地址是:列偏移:0x1020+2*4=0x1028。40. arr+1 地址是:行偏移:0x1020+16=0x1030。*(p+1)+1的地址是:0x1020+16+4=0x1034。*(p+1)的地址是:0x1020+16=0x1030。p+2的地址是:0x1020+16*2=0x1040。&p+2的地址是:0x600+16=0x610。
2024-02-15 19:22:31
362
原创 2024.2.13
39. puts(">6"),因为有符号int 与无符号 int 参与运算时,会将有符号转换为无符号参与运算,-20转换成无符号数大于6,所以+6也大于6。23.B 5先出栈表示1,2,3,4已经入栈了,5出后4出,但之后想出1得先让3,2先后出栈,所以 B 不可能。26.可能会出现段错误,因为A[255]只有255个元素,循环0-255,有256个元素,越界访问数组可能会出现段错误。
2024-02-15 16:57:30
351
原创 2024.2.12
1.发生段错误,字符串存储在只读段,无法被指针直接访问。2.结果为输出 hello world。4.发生段错误,野指针非法访问。3.输出 hello。
2024-02-12 22:02:29
362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人