02 QMake的基本用法
QMake的基本用法QMake是和CMake类似的项目组织工具,不过比CMAKE简单不少 官方文档:https://doc.qt.io/qt-5/qmake-manual.html 本地的Qt安装目录也有,和官方文档一致 1.QMake添加源/头/UI等文件12345678910111213SOURCES += \ $$files(UserAPP/Src/*.cpp) \ $$files(UserAPP/Src/*.c) \# main.cpp \# mainwindow.cppHEADERS += \ $$files(UserAPP/Inc/*.h)# mainwindow.hINCLUDEPATH += UserAPP/Inc/FORMS += \# ...
07 模板编程
模板 C++的泛型编程利用的主要就是模板 模板主要分为函数模板 和 类模板 一、函数模板函数模板的作用: 建立一个通用的函数,其返回值和形参类型可以不具体确定,用一个虚拟的类型来代表。 1.语法:12345678template<typename T>//声明一个模板,告诉编译器后边的T是一个通用数据类型//函数的声明/定义void swap(T &a,T &b){ T temp = a; a=b; b=temp;} template:关键字,声明创建模板 typename:关键字,可以用class替代,表面其后面的符号是一种数据类型 T:通用的数据类型,也可换成其他的符号 2.注意: 如果把函数的声明和实现分别放到.h和.cpp中,则要写两次template template< >仅对紧跟的一个函数的声明或者定义有效,如果要写多个函数模板,则要写多次template< > 3.使用方法123456//1.自动推导数据类型int...
串口通信进制问题
串口通信进制问题由于UART一般通信帧是8 bit,所以通常以ASIIC码的形式进行传输,但也可以用一位16进制数来进行传输。 常见的串口助手默认发送的都是字符型比如’5’,或者说ASIIC码的形式,如果要发送16进制数,需要选择16进制发送,比如要发0xFF,串口助手这里发送写成FF就行,但单片机的的if中必须写成0XFF Python发送16进制数先用bytearry打包,然后serial.write就行了
蓝牙
...
FreeRTOS_命名规则
FreeRTOS(1)命名规则1. 命名规则RTOS内核和演示例程源代码使用以下规则: > 变量uint32_t:前缀 ul,u 表示 unsigned,l 表示 long uint16_t:前缀 us,s 表示 short uint8_t:前缀 uc,c 表示 char 非 stdint 类型的变量使用前缀 x,比如基本的 Type_t 和 TickType_t 类型 非 stdint 类型的无符号变量使用前缀 ux,比如 UbaseType_t(unsigned BaseType_t) size_t 类型的变量使用前缀 x 枚举类型变量使用前缀 e 指针类型变量在类型基础上附加前缀 p,比如指向 uint16_t 的指针变量前缀为 pus char 类型变量前缀为 c char * 类型变量前缀为 pc 举例: 12size_t xQueueSizeInBytes;uint8_t * pucQueueStorage; > 函数在文件作用域范围的函数前缀为 prv(一般定义是 static) API 函数的前缀为它们的返回类型,当返回为空时,前缀为...
事件
事件当LVGL发生某些用户可能感兴趣的事件时,系统做出相应的响应。实际上根据具体情况调用相应的回调函数。STM32的中断也可看成是一种事件 LVGL中的事件包括以下几类: 输入设备事件(Input device events):对象被按下、滚动、聚焦…. 绘图事件(Drawing events) 其他事件(Special events):对象被删除、样式等被更改….. 特殊事件(Other events):对象的值被更改(滑块移动)、一个过程完成 自定义事件(Custom events) 具体的看官方文档 1.给对象添加事件1234567static void my_event_cb(lv_event_t * event){ printf("Clicked\n");}lv_obj_t * btn = lv_btn_creae(lv_scr_act());lv_obj_add_event_cb(btn, my_event_cb, LV_EVENT_CLICKED, NULL); /*Assign an event...
FreeRTOS_常用API
FreeRTOS(3)常用API==FreeRTOS中任务优先级数值越大,优先级越高,和HAL库相反== 1.创建任务1234567891011121314BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, //任务函数 const char * const pcName, //任务名字 const uint16_t usStackDepth, //任务堆栈大小 void * const pvParameters, //传递给任务函数的参数 UBaseType_t uxPriority, //任务优先级 TaskHandle_t * const pxCreatedTask ) //任务句柄//pxTaskCode : 任务函数 //PCName :...
HAL串口中断
HAL串口中断1.每次使用串口中断前必须初始化一下1HAL_UART_Receive_IT(&huart1, (uint8_t *)RxBuffer,LENGTH);//指定缓冲区以及触发中断的长度 ==每次中断后都得在用一次该语句,不然就只能触发一次中断,第一次中断前初始化时也要写这句== 2.串口发送函数12HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) 功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。 参数: UART_HandleTypeDef *huart UATR的别名 如 : UART_HandleTypeDef huart1; 别名就是huart1*pData 需要发送的数据Size 发送的字节数Timeout ...
旅游机器人赛后总结
旅游机器人赛后总结1.硬件介绍1.主控:STM32F103ZET6 2.用到的传感器: a.8路灰度传感器 b.光电传感器 c.MPU6050 d.色标传感器 3.小车结构: ...
(四)串口
(四)串口一、MSP430单片机串口概述MSP430具有2个串口,分别为USCI_A0和USCI_A1。 USCI_A0_BASE:P3.3, P3.4 = USCI_A0 TXD/RXD (板上空闲的) USCI_A1_BASE:P4.4, P4.5 = USCI_A1 TXD/RXD (USB是该串口) 二、串口相关函数(1)UART配置和控制的相关函数 1234567891011121314USCI_A_UART_init(uint16_t baseAddress, USCI_A_UART_initParam ∗param)//初始化函数USCI_A_UART_enable(uint16_t baseAddress)//使能UART模块USCI_A_UART_disable(uint16_t baseAddress)//失能UART模块USCI_A_UART_setDormant(uint16_t baseAddress)//将UART模块设置为休眠模式USCI_A_UART_resetDormant(uint16_t...







