- 博客(50)
- 收藏
- 关注
原创 STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3(1)
通过定时器每隔一段时间触发一次DAC转换,然后通过DMA发送正玄波码表值给DAC.
2024-05-17 09:04:38 574
原创 STM32-定时器详解_stm32定时器
PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%。PWM的功能有很多种,比如控制呼吸灯、控制直流电机或者舵机等驱动原件等等,是单片机的一个十分重要的功能。
2024-05-17 09:04:04 1393
原创 STM32-使用定时器做延时函数时遇到的坑_stm32 delay函数的坑
这样,后一次的设置,就覆盖了前一次对gTimer的赋值,从而导致两个延时函数会同时结束,也就是说,delay_ms_tim(1000)实际延时时间可能只比100us略多,而我们期望的是1s,差距巨大!//定时10us //最大65536。考虑到delay_us()执行完成了,也就是说,SysTick 已经计到了 0了,即 SysTick->CTRL&(1
2024-05-17 09:03:30 1373
原创 STM32-使用定时器做延时函数时遇到的坑_stm32 delay函数的坑(3)
/分频系数为2 //是对APB1的2倍频进行分频,分频系数为2,所以频率还是8M。这样,后一次的设置,就覆盖了前一次对gTimer的赋值,从而导致两个延时函数会同时结束,也就是说,delay_ms_tim(1000)实际延时时间可能只比100us略多,而我们期望的是1s,差距巨大!
2024-05-17 09:02:56 846
原创 Qt Designer的简单使用
在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。用 C++ 代码编写图形界面的问题就是不直观,因此项目开发了专门的可视化图形界面编辑器——Qt Designer(Qt 设计师)。通过 Qt Designer 就可以很方便地创建图形界面文件 *.ui ,然后将 ui 文件应用到源代码里面,做到“所见即所得”,大大方便了图形界面的设计。
2024-05-17 05:42:02 847
原创 qt designer 手册翻译_designer控件翻译
*请注意:**您可以选择进行用户界面设计, 而不是小部件。它是编写多种应用程序的一种简单得多的方法。它支持完全可定制的外观、触摸反应元素和平滑的动画过渡, 并得到 oplogl 图形加速功能的支持。如果您是qt 设计器的新手, 则可以查看 "文档。有关如何使用qt 设计器的快速教程, 请参阅。
2024-05-17 05:41:28 418
原创 qt designer 手册翻译_designer控件翻译(1)
*请注意:**您可以选择进行用户界面设计, 而不是小部件。它是编写多种应用程序的一种简单得多的方法。它支持完全可定制的外观、触摸反应元素和平滑的动画过渡, 并得到 oplogl 图形加速功能的支持。如果您是qt 设计器的新手, 则可以查看 "文档。有关如何使用qt 设计器的快速教程, 请参阅。
2024-05-17 05:40:55 302
原创 Qt C++音视频开发07-合并音视频文件_c++怎么合并音视频
之前已经把音视频分开存储了对应的文件,因为这个需求特别少,当然确实有部分用户是需要把音视频分开存储,但是毕竟是很少数,绝大部分的用户都是音视频合并到一个MP4文件,所以如果要合并到一个文件,现在已经存储成了两个文件,最简单的做法就是调用ffmpeg命令行将两个文件合并,这种做法简单粗暴,为此专门写了一个线程类 FFmpegRunThread 执行这些转换操作。转换的时候很耗CPU,如果视频文件很长很大,基本上CPU处于快被榨干的状态。
2024-05-17 05:40:20 434
原创 hexo史上最全搭建教程(1)
Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。整个主题看起来好像很复杂的样子,但是仔细捋一捋其实也比较流畅,languages: 顾名思义layout:布局文件,其实后期想要修改自定义网站上的东西,添加各种各样的信息,主要是在这里修改,其中comment是评论系统,common。
2024-05-17 02:03:39 918
原创 Hello Qt——Qt信号槽机制源码解析_qt rangechanged信号
Object::qt_metacall函数内部调用了Object::setAge函数,setAge内部调用Object::ageChanged信号函数,ageChanged信号函数内部调用了QMetaObject::activate函数,activate函数内部调用Object::qt_static_metacall函数,最终qt_static_metacall函数内部调用了槽函数onAgeChanged。但是在向量中,所有的槽也会占有一定空间,通常在一个对象中,槽的数量要比信号多。
2024-05-17 02:03:05 399
原创 HC-SR04超声波模块
此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响模块的正常工作。测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果。
2024-05-17 02:02:30 427
原创 HC-SR04超声波模块(1)
此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响模块的正常工作。测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果。
2024-05-17 02:01:56 432
原创 Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试_chrome控制台如何修改indexdb的数据(2)
谷歌浏览器可能是开发人员中使用最广泛和最受欢迎的网络浏览器,因为它与众不同。它已逐渐成为大多数开发人员测试和调试其网站和 Web 应用程序的首选 Web 浏览器。Google Chrome 为开发人员提供了使用浏览器中的内置开发人员工具(又名 DevTools)调试大多数 Web 应用程序的能力,而无需第三方调试工具。Google Chrome 的开发人员工具中有多种功能和工具可供开发人员直接在浏览器中编辑代码、测试和添加断点以检测问题,并更有效地调试代码。
2024-05-16 21:03:54 421
原创 Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试_chrome控制台如何修改indexdb的数据(1)
要了解有关此功能的更多信息,请访问。
2024-05-16 21:03:20 761
原创 Cocos2d-X中的CCSprite_cocos2d-x ccsprite
【代码】Cocos2d-X中的CCSprite_cocos2d-x ccsprite。
2024-05-16 21:02:45 234
原创 C++ Qt高级开发视频教程_明仕强qt(1)
第十一章是我们的企业级项目实战:实现一个视频会议客户端,本项目可以进行多人视频通话,直播,桌面分享等功能,本项目我会从零开始,进行项目搭建,功能调试,bug fixed, 带领大家做一个企业级项目。既然是做企业级项目,必然需要和后台交互,http编程也是必要的,第六章将详细介绍http编程,用户注册,登录,后台接口请求等知识;课程中如果讲的不对的地方,请大家指出,我及时修正,我也只是一个普通开发者,也不是所有的技术都会,尽我所能,把我所会的教给大家,让我们一起为Qt的发展,尽一份绵薄之力。
2024-05-16 16:02:19 439
原创 c++ qt通过QWebChannel与JS html网页端交互通信_qwebchannel js
可以戳这里获取](https://bbs.csdn.net/topics/618679757)**// js调用此函数 由于是异步通信,js端使用promise方式调用。// 接收JS传递过来的字符串。//用于发送给js页面的数据。
2024-05-16 16:01:45 490
原创 C++ map用法总结(整理)_c+
上面这两条语句执行后,map中001这个关键字对应的值是“student_one”,第二条语句并没有生效,那么这就涉及到我们怎么知道insert语句是否插入成功的问题了,可以用pair来获得是否插入成功,程序如下。我们通过pair的第二个变量来知道是否插入成功,它的第一个变量返回的是一个map的迭代器,如果插入成功的话Insert_Pair.second应该是true的,否则为false。当所查找的关键key出现时,它返回数据所在对象的位置,如果沒有,返回iter与end函数的值相同。
2024-05-16 16:01:12 277
原创 C++ map用法
/就相当于enumMap.erase(enumMap.begin(),enumMap.end());//通过一个条目对象删除。
2024-05-16 16:00:36 401
原创 51单片机实现串口点灯
/计数器初始值设置,注意波特率是4800的。TMOD=0X20;//设置计数器工作方式2。SCON=0X50;//设置为工作方式1。PCON=0X80;// 串口初始化。函数名 :UsartInit()函数功能 : 串口通信中断函数。函数功能 :设置串口。输出 : 无。输出 : 无。函数功能 : 主函数。输入 : 无。输入 : 无。
2024-05-16 12:59:38 242
原创 51单片机实现串口点灯(1)
(3)判断帧头和帧尾完毕后,若正确的话再判断“XX” 数据,对应“XX” 数据对LED0~LED7 进行点亮、熄灭控制;//计数器初始值设置,注意波特率是4800的。//对数据类型进行声明定义。TMOD=0X20;//设置计数器工作方式2。SCON=0X50;//设置为工作方式1。PCON=0X80;// 串口初始化。函数名 :UsartInit()函数功能 : 串口通信中断函数。函数功能 :设置串口。函数功能 : 主函数。
2024-05-16 12:59:04 269
原创 51单片机学习笔记_单片机sendbyte干嘛用的(2)
IIC百科SPI、UART、RS232、RS485、IIC 5种嵌入式经典通信总线协议精讲。
2024-05-16 12:57:55 411
原创 termios 详解
ECHOCTL :(不属于 POSIX) 如果同时设置了 ECHO,除了 TAB,NL, START, 和 STOP 之外的 ASCII 控制信号被回显为 ^X, 这里 X 是比控制信号大 0x40 的 ASCII 码。* VERASE :(0177, DEL, rubout, or 010, BS, Ctrl-H, or also#) 删除字符。允许使用特殊字符EOF, EOL, EOL2, ERASE, KILL, LNEXT, REPRINT, STATUS, 和WERASE,以及按行的缓冲。
2024-05-16 01:28:05 343
原创 TensorFlow中简单的LSTM代码实现_tensorflow lstm代码
定义一层LSTM_CELL hiddensize 会自动匹配输入的X的维度# 添加dropout layer, 一般只设置output_keep_prob。
2024-05-16 01:27:31 338
原创 TencentOS tiny 移植到STM32F103全教程(基于标准库)_基于野火 stm32f103 开发板上移植的 tencentos tiny 例程、源码剖析、视频讲解
TencentOS tiny的源码可从仓库地址,大家在移植时并不需要把整个源码放进工程文件中,否则工程的代码量太大。杰杰将在下文讲解如何将移植到工程中去,以及如何把源码中的核心部分单独提取出来,方便以后在不同的平台上移植。目前使用的是最新版本,由于在不断更新,如果以后更新到更高的版本,则以最新的版本为准。
2024-05-16 01:26:56 393
原创 Flutter 学习路线图_flutter学习路线
Flutter越来越火,学习Flutter的人越来越多,对于刚接触Flutter的人来说最重要的是如何学习Flutter,重点学习Flutter的哪些内容。下面是Flutter的学习路线图,学会这些你就入门了,当然这仅仅是初学者的学习路线图,前路漫漫。
2024-05-15 23:16:15 1089
原创 Flash,EEPROM和SRAM的区别_dsp中sram是什么
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
2024-05-15 23:15:41 1162
原创 Flash,EEPROM和SRAM的区别_dsp中sram是什么(1)
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
2024-05-15 23:15:07 672
原创 FileUtils 文档详细介绍_fileutil
那么创建的精灵所使用的资源图片为"bg.png",而不是"sprite.png"。(3)按以下顺序查找,并返回"sprite.png"的完整路径(如"C:/Res/xyz/bg.png")。(3)按以下顺序查找,并返回"sprite.png"的完整路径(如"C:/Res/xyz/bg.png")。(如“proj.win32/Debug.win32/”)(2)然后查找"bg.png"(若无字典,直接查找"sprite.png")(2)然后查找"bg.png"(若无字典,直接查找"sprite.png")
2024-05-15 23:14:32 195
原创 为什么我学51单片机很顺利,学STM32却一头雾水?_stm32 一辈子也学不完
还好,开发模式基本跟51单片机相同,都是通过配置寄存器使用,只不过寄存器要复杂也多很多,我记得当时用的好像是lpc2103。很多人心急,一在开发板上学完51单片机,马上就开始学STM32,连项目都不做一个,有些甚至直接学STM32。大概花了半个多月的时间,我就把这些外设用起来了,用熟了以后感觉太爽了,比51单片机和LPC爽多了。硬件选型是他选的,他推荐我们用STM32的单片机,开发起来挺爽,我也不懂,完全听他安排,大概做了3,4个月,我基本上上手了,原来改个功能要半个月,现在改个功能只需要1周左右。
2024-05-15 02:07:37 427
原创 串口通信——接收串口数据并处理(C语言)_c语言串口接收数据存入数组
/根据实际情况选择串口。if(set_Parity(fd,8,1,‘N’)==FALSE) //设置校验位。switch (stopbits)/*设置停止位*/
2024-05-15 02:07:01 543
原创 不会代码也能玩开发?基于华为云 IoT 快速实现 0 代码体验物联网设备上云_iot 零代码开发
我们本次实验以一款虚拟的智慧烟感器为例,烟感器的产品模型是指由烟雾浓度湿度温度等属性以及命令等组成的一组数据,用来描述烟感设备的物理性质。进入“产品定义”页面,我们可以看到在“向导式极速体验”中产品模型已经定义完成。我们只需要自定义一个“产品名称”即可,点击“创建产品”进入下一步,具体如下图所示:该智慧烟感器的产品属性属性名称数据类型是否必选访问方式描述alarmint(整型)是可读,可写是否有烟雾报警,0 没有报警,1 有报警decimal(小数)是可读烟雾浓度值。
2024-05-15 02:06:23 408
原创 一篇短文让你彻底理解什么是串口通信_串口通信和数字量通信区别(2)
同步串行通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。两种串行通信不同就只有时间,在发送字符时,异步可以是不同时间间隔发送,但同步只能以固定的时间间隔发送。
2024-05-15 02:05:43 305
原创 C++ Qt 获取局域网中存在的主机(IP以及主机名)_qt获取局域网所有活动ip(1)
【代码】C++ Qt 获取局域网中存在的主机(IP以及主机名)_qt获取局域网所有活动ip(1)
2024-05-14 16:34:44 381
原创 C#给Sqlite数据库进行加密、修改密码_c#怎么给存入sqlite的数据加密
string[] { “1”, “张三”, “16”, “Zhang@163.com” });(img-L8wtLW2Q-1715675622294)](img-7WprbtTO-1715675622295)]//文件及其对应路径。
2024-05-14 16:34:06 1429
原创 C# 根据typename字符串,创建任意类型的对象(含泛型)_c# 根据类名创建对象
那么,换个场景,有一个函数,传递进来一个object对象,如果对象存在Run方法,就运行该方法,如果不存在Run,但存在Start,则运行Start方法,再不行,就按照Begin、Do等方法依次向后查找,这个时候,如果用switch来枚举object可能的类型不是不可以,但是这样会造成后期需要经常维护此处代码,所以用反射来调用。再次,我们根据,从里到外获得所有类型字符串,并按顺序记录下来,然后将内层的对象作为参数传递给外层的对象,通过MakeGenericType方法来创建支持泛型的对象。
2024-05-14 16:33:24 450
原创 2024年物联网嵌入式最新【蓝桥杯嵌入式】,物联网嵌入式开发大厂面试真题解析大全
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) //输入捕获回调函数。/********************输入捕获************************/HAL_TIM_ACTIVE_CHANNEL_1)//通道检测。
2024-05-14 12:51:52 937
原创 2024年物联网嵌入式最新【蓝桥杯嵌入式】KEY 按键模块(新一版,集合按键单双击、长按,15个经典面试问题及回答思路
if(keys[1].double_flag==1)//当按键双击的时候。籍、讲解视频,并且后续会持续更新**
2024-05-14 12:50:26 316
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人