- 博客(28)
- 收藏
- 关注
原创 STC8A8K64D4的PCA_PWM以及增强型PWM设置(附上代码)
【代码】STC8A8K64D4的PCA_PWM以及增强型PWM设置(附上代码)
2024-09-06 16:45:57
800
原创 kEIL报错 error : missing ‘;‘ before ‘XX‘;syntax error near‘xx‘;ADDRESS SPACE OVERFLOW SPACE
将所有idata改为xdata,还有一些局部变量使用多的数组和重复使用的变量,也写为xdata,还是有这个错误。②接着编译有蹦出这个错误(在xxx附近语法错误)syntax error near'xx'③ADDRESS SPACE OVERFLOW SPACE:接着又报内存不足错误。' before 'XX'原因是在于。
2024-08-09 17:33:19
374
原创 C与C++语言基础知识
宏定义注意:1、在使用宏定义判断的地方包含对应定义处的头文件,避免宏定义判断错乱。2、在宏定义的.h头文件内,最好用括号将定义的值进行保护。使用宏定义进行判断时:某个头文件内:A (1)在某个.c利用其他.h文件内定义的宏进行判断(若未包含对应的.h,则可能出现if else错乱的现象):#if A#else#endif无论是C还是C++,在全局定义一个结构体指针变量时,都要给与一个确切的地址指向一片空间,不然在操作时将会程序错误。
2024-05-07 09:37:48
445
原创 QT绘制一个图表Qchart,实现数据波浪滚动效果
注意:QLineSeries绘制的是折线,QSplineSeries才是曲线,需要添加头文件。(2)定时器触发槽函数:】示例:绘制4条曲线——
2024-04-28 10:19:44
846
原创 keil下载ST-Link报Cannot Load Flash Programming Algorithm!:
长按开机键,给机器持续供电,下载与调试(只有程序跑过了system_config才能松手)均如此:
2024-04-28 10:17:58
886
原创 GD450替换为GD470芯片(keil工程需要修改的地方)
5、将所有defined (GD32F450)的地方也添加上defined (GD32F470)450与470中的system_gd32f4xx.c里的系统初始化函数不一样;总结:需将工程内的离线库版本完全修改为3.0.0版本;2、从systeminit函数看确实有所变化。
2024-04-28 10:10:43
685
原创 Qdebug相关操作
4、在需要知道线程ID时,可以打印出来看看,例如查看信号槽是否需要使用QT::DirectConnection(可跨线程发送,直连),或QT::BlockingQueuedConnection(阻塞式连接,接收处理完后,才能再继续发送,用于不同线程间,若为同一线程,则会锁死阻塞)qDebug()<<"----xxx[%d]:0x%x----"<<i,xxx[i];//错误,这样是输出不了值的。//正确,可以输出值。
2024-04-28 10:09:14
332
原创 数据范围等比例换算的逻辑与例子(小学数学)
在很多数据处理中,需要把在大值范围内的数值,转换到小值范围内的数值。例如:把25000~40000内的数转换为1~136内的数。
2024-04-25 14:49:15
311
1
原创 QT样式表各类控件操作
三、QCeckBox(利用背景图片,可做成按钮切换的样式)二、进度条——QSlider。进度条运行后拉动效果;label控件效果;
2024-04-25 14:46:11
262
1
原创 QT播放GIF动图
一、在界面中添加一个label,然后在label中显示GIF图片,且动态图片大小会和label大小一样。1、将文件夹里的文件目录删除,然后将控制该目录的.qrc移到QT中,再清除构造就行了。二、添加一个资源文件。
2024-04-25 14:37:51
365
1
原创 fatfs文件管理系统操作:
f_open函数:f_open不能打开文件名字过长的函数,参考链接:(49条消息) 文件系统打开、创建文件失败,无效文件名?-编程语言-优快云问答f_mkdir函数: f_stat函数:操作:f_chdir函数: f_close函数:
2024-04-25 14:35:46
535
1
原创 QT中Qstring与数组相互转换
转为了unsigned char*后,便可以直接使用内存拷贝memcpy()转为了QString类型后,便可以显示在相关的枚举控件上。
2024-04-25 14:34:53
697
1
原创 FreeRtos线程创建知识
三、线程创建后,一定要用死循环在内部跑,若线程未用循环一直跑,直接结束,则会影响其他线程的运行。且其只提供ms级别的精度 1s=1000ms。必须在线程开始调度后使用,二、osDelay()
2024-04-25 14:34:09
467
1
原创 QT中2D光谱图的绘制(未完成)
修改pro文件,添加两个内容,一个是QT += printsupport,另一个是DEFINES += QCUSTOMPLOT_USE_OPENGL,前者的作用是为了使用该控件,后者的作用是为了让画图过程中使用OpenGL以增加效率,另外,如果你是后来添加的DEFINES += QCUSTOMPLOT_USE_OPENGL则需要清除工程文件,重新构建,因为这部分内容需要写入预编译产生的文件中;, 因为这个库使用起来很方便,只需要导入 .h 和 .cpp 文件就行,无需编译成动态链接库。
2024-04-25 14:33:09
588
2
原创 vs利用debug的操作,输出相应的变量数据
1、在调试程序时,想要输出某个变量的值到vs的输出窗口,而不是通过添加断点,每次调试时,一步一步的看变量的值,很麻烦,用console.writeline(str);是不行的,这个命令只能用在控制台应用程序中的。5、可以选中条件对话框中的继续执行,这样,断点值不会中断,但会输出变量的值到output窗口,确定,断点的形状又圆形编程方形。4、在命中条件对话框中,选中打印消息,打印消息的格式模板如: i = {i};"想要输出的字符串"{"想要输出的变量名字"}2、在变量i的后面的某个行打断点。
2024-04-25 14:31:59
638
2
原创 GD32F450板卡的ADC使用规则(附上代码):
ST芯片可以,具有转换通道的函数,但GD芯片不行,不使用DMA,最多可以借助扫描模式获取两个通道的值,再多一个就需要DMA了。这样,DMA就会自动获取数据,并且自动递增数组地址,存入我们的缓存地址,我使用了一个全局二维数组。4、但这样使用DMA获取各个通道数值的话,会出现一个问题。处理要求:不使用DMA可以获取多通道的值吗?
2024-04-25 14:30:56
885
1
原创 keil通过memery定位死机代码段
(3)、去到Disassembly内查看系统跑的代码段是什么开头,然后去memery内找相应的地址复制,然后右键粘贴goto查看是否有相关熟悉代码段。(2)、可初步点击call stack window内的两个show按钮(右键可打开),看看有没有熟悉的代码段。在debug模式下,死机后点停止 × 键。
2024-04-25 14:27:10
885
1
SourceCounter代码计数小工具,快速计算你到底写了多少代码
2024-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人