自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (4)
  • 收藏
  • 关注

原创 stm32cubeMX生成代码(HAL库)定时器2输入捕获(G0B1)

update event更新中断打开,TIM2中断使能打开 。主函数初始化:HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_2); // 打开捕获中断__HAL_TIM_ENABLE_IT(&htim2,TIM_IT_UPDATE); //使能定时器2中断两个回调函数:uint32_t capture;void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)//捕获...

2021-11-28 17:53:05 686 1

原创 stm32cubeMX生成代码(HAL库)实现PWM(G0B1)

外设时钟频率/上面框框内两个数=PWM频率设置counter改变占空比注意:1.不用开中断2.初始化后,使能PWM通道,才有输出if (HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1) != HAL_OK) { /* PWM Generation Error */ Error_Handler(); }...

2021-11-28 15:33:14 739

原创 stm32cubeMX生成代码(HAL库)实现定时器中断(G0B1)

两个数字相乘,除以外设时钟64M就是定时器时间:6400*10/64000000=1000us=1ms对应代码在TIM3初始化里面使能中断对应代码:void TIM3_TIM4_IRQHandler(void){ /* USER CODE BEGIN TIM3_TIM4_IRQn 0 */ /* USER CODE END TIM3_TIM4_IRQn 0 */ HAL_TIM_IRQHandler(&htim3); /* USER CODE BEG...

2021-11-28 15:10:05 647

原创 stm32cubeMX生成代码(HAL库)实现DMA串口收发(G0B1)

stm32cubeMX生成代码(HAL库)实现DMA串口收发(G0B1)

2021-11-28 12:00:27 3483

原创 keil芯片包与stm32cube固件匹配(版本对应)

2021-11-13 16:42:21 3974

原创 两层神经网络,反向传导

#神经网络import numpy as npN, D_in, H, D_out = 64, 100, 100, 10x = np.random.randn(N, D_in) #64*1000y = np.random.randn(N, D_out) #64*10w1 = np.random.randn(D_in, H) #1000*100w2 = np.random.randn(H, D_out) #100*10learning_rate ...

2021-01-08 00:48:27 210

原创 装饰器

import timedef add_teacher_name(teachermsg): def teacher_name(func): def wrapper(msg): func(msg+'我的老师叫'+teachermsg) return wrapper return teacher_name@add_teacher_name('wang')def stu1(name): print('我叫',name)@a...

2020-11-12 10:54:51 65

原创 结构体数组查询

#include <stdio.h>typedef struct{ char num; void (*func)(void);}STATE;char tests=0;void func1(){ printf("state1");}void func2(){ printf("state2");}STATE situation[6]={ {2,func1}, {3,func2}, {4,func1...

2020-07-10 18:17:54 890 1

原创 情景

char lastledsituation;char ledsituation;void ledblink(){ static char blinkcount=0; if(laseledsituation!=ledsituation) { blinkcount=4;//循环次数 lastledsituation=ledsituation; } //非预热模式, 每种情景设置一种方式 if(led100mscount...

2020-07-01 16:24:24 139

原创 为什么在串口接收中断函数中打印数据(串口输出数据)会导致出错?

在用华大单片机HC32L110操作时,会出现标题所示的错误,下面是数据手册中的一句话:then,看下实际工程中的代码(无关代码已经删除,保留关键代码),串口配置为接收中断,输出不用中断方式串口发送:en_result_t Uart_SendData(uint8_t u8Idx, uint8_t u8Data){ Uart_ClrStatus(u8Idx,UartTxEmpty); //发送完成标志位清零=FALSE pstcData->pstcInstance-&...

2020-06-22 15:55:59 2653

转载 msp430时钟系统手册翻译

转:http://home.eeworld.com.cn/my/space-uid-1119911-blogid-727346.htmlMSP430产品能做到超低功耗主要得益于对时钟的严谨设计,在所有MSP430产品中,总共有以下几种时钟类型:MCLK:Master Clock,MCU主时钟,决定着CPU,CRC等运行的速度。 SMCLK:Subsystem Master Clock,子系统时钟,这个时钟总是由MCLK分频得到,可以是1、2、4、8等分频,与MCLK属于同步时钟,主要可用于常规..

2020-05-28 16:11:46 1352

原创 python脚本纠错:interpolate.interp2d的正确用法

说明:接上一篇脚本中有个错误,一直未解决,其实是interpolate.interp2d的输入参数错误,输入参数应该一维数组,而不是二位数组。参考https://stackoverflow.com/questions/3526514/problem-with-2d-interpolation-in-scipy-non-rectangular-grid所以在插值前,加两句把输入参数变成一维数组XX = np.arange(0, 16, 1)YY= np.arange(0, 12, 1)

2020-05-21 00:35:32 6585

原创 Python脚本:插值法效果前后两张图同时显示,及等温线投影

效果图:插值法效果前后两张图,同时显示,及等温线在平面的投影但是提示错误,没找到原因代码:from matplotlib import pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfrom scipy import interpolateimport matplotlib as mplimport matplotlib.cm as cmfig = plt.figure()Z=n

2020-05-20 18:06:00 695

原创 Python脚本:增加3D图表清晰度(插值法)

先贴效果图:右边是处理后代码:from matplotlib import pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfrom scipy import interpolateimport matplotlib as mplimport matplotlib.cm as cmfig = plt.figure()tmp=np.empty([12,16])Z=[]ax = Axes3

2020-05-16 16:19:10 759

原创 Python脚本:从txt文档中提取数字并用图表显示

从最细节开始,到最后结果,都是自己动手验证,可以供大家参考(包括模块numpy matplotlib导入失败的解决方法)1安装环境去Python官网下载,我的电脑64位所以选择最新的版本Python3.8.2,因为我用2.7版本有问题,然后选择executable installer,下载后安装一路往下问题不大。然后在电脑搜索 idle,打开编辑界面,在file中编译后,run->run module,或者快捷键F5运行结果。先展示下结果,目的想把datalog.txt中的At

2020-05-14 21:37:01 1598 1

翻译 Linux_2.6之makefiles个人理解性翻译

打开linux-2.6.0\linux-2.6.0\Documentation\kbuild\makefiles.txt,如下部分,关键性语句,口语化翻译,目录就不看了,看第一部分:OverviewLinux Kernel MakefilesThis document describes the Linux kernel Makefiles.=== Table of Contents...

2018-10-09 19:40:54 315 1

原创 函数指针,与c++类的联想

#include&lt;stdio.h&gt;typedef void (*functionPointerType)(void);typedef struct commandstruct{    char const* name;    functionPointerType Pfunction;    char const *help;    };void commVersi...

2018-10-06 15:53:20 184

原创 在mfc中添加控制台,实现printf

#include &lt;io.h&gt;  #include &lt;fcntl.h&gt;void InitConsoleWindow(){AllocConsole();HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);int hCrt = _open_osfhandle((long)handle,_O_TEXT);FILE * hf...

2018-09-28 17:36:07 1170

原创 结构体可以直接用=互相赋值,,,!

郁闷了,原来可以直接操作,绕那么大圈void main(){    STU stu1={0,10};    STU temp={12,88};//STU * p1=&amp;stu1;//STU * p2=&amp;temp;printf("%d-%d\n",temp.name,temp.num);    temp=stu1;printf("%d-%d\n",temp.name,...

2018-09-21 16:37:23 17501 2

原创 结构体指针替换

#include&lt;stdio.h&gt;typedef struct {char name;int num;}STU;void change(STU *p1,STU *p2){*p2=*p1;}void main(){    STU stu1={0};    STU temp={12,88};    printf("%d-%d\n",temp.name,te...

2018-09-21 15:39:20 463

原创 结构体强制转换

struct student{int name;int age;}student;typedef struct student* Pstu;void main(){    int a[2]={15,16};    printf("%d",((Pstu)a)-&gt;name);    printf("%d",((Pstu)a)-&gt;age);}结果:还可...

2018-09-17 20:14:13 2354

原创 结构体指针必须用->

 struct student{int name;int age;}student;typedef struct student* Pstu;void main(){Pstu p;//变量定义p-&gt;name=0;p.age=0;}compile:error C2231: '.age' : left operand points to 'struct', use...

2018-09-17 19:46:50 3751

原创 static

fun.cwchar.c一个c文件调用另一个c文件的函数,包含static变量的情况是没问题的。

2018-09-17 19:41:49 122

原创 二维数组malloc与free

特别适用于C语言动态字符串数组操作#include &lt;stdio.h&gt;typedef unsigned int wchar;#define LENGTH 10//需求:字符串数组的二维数组动态开辟//name[n][LENGTH]  。。。。。。。。。。//                   。。。。。。。。。。//                   。。。。。...

2018-09-17 18:52:11 5377

原创 同级传递形参达不到想要效果,平级指针传递也不行

#include &lt;stdio.h&gt;typedef unsigned int wchar;int i=9;//全局变量,指针固定int * changeptr(int * p)//指针加1{p=p+1;return p;}void main(){    int *addr=&amp;i;    printf("%d\-%d\n",&amp;i,i);...

2018-09-17 18:15:15 197

原创 malloc和free在两个函数中实现

char* creat(void){    char* p=(char*)malloc(sizeof(char)*10);    return p;}void del(char *p){    free(p);    p=NULL;}int main(){    del(creat());} 通过指针传递,    p=NULL;这句是精华,工程做的好的会把p赋...

2018-09-17 17:28:01 936

原创 结构体指针做形参(两个结构体互换)

对比两个程序就懂啦,我真聪明,竟然想出这种直接互换结构体的方法程序一:#include &lt;stdio.h&gt;typedef struct{char num1;char num2;}INFO; INFO * info=NULL; INFO * info1=NULL;void changep(INFO* p1,INFO* p2){INFO *p;p=p1;...

2018-09-13 14:40:56 7985 2

原创 malloc与直接定义变量的区别

//vc6.0编译环境下代码#include "stdio.h"#include "malloc.h"#define N 5 //malloc申请内存 int *function1(){    int i;    int *a=(int *)malloc(sizeof(int)*N);    for(i=0;i&lt;N;i++)    {        a[i]=i+1;...

2018-09-06 13:56:28 2179

原创 积累之函数指针(代码)

#include &lt;stdio.h&gt;typedef void (*pfunc)(void);void led_task(void){printf("task1\n");}void audio_task(void){printf("task2\n");}void cps_task(void){printf("task3\n");}void core_task(void){pr...

2018-08-20 09:55:49 138

原创 积累之按键防抖动(代码+图解)

u8 KeyValue_backup;u8 KeyValue_cur;//当前确定的valueu16 LoopCount;//时间间隔计数void SetKeyValue(u8 value)//value可以是高低值0或1,也可以是旋钮开关0,1,2,3,,,n{    if(KeyValue_backup!=value)    {    KeyValue_backup=val...

2018-08-17 11:03:20 6090 1

原创 ucos3消息队列的应用(stm32f103),keil5工程压缩包

压缩包下载链接:见下方评论处。说明:两个重要的函数,见图中红色方框,task1发送一串数据,task2一直等待数据的到来,到来后通过串口一发送出来,通过串口助手观察。Attention!在完成过程中,发现在stm32使用时,需要先初始化等等一系列复杂的东西,请留意。...

2018-06-26 16:42:04 867 1

原创 自己动手模仿的串口上位机MFC简单工程

完整的项目工程压缩包:见下发评论处的链接。参考教程:https://blog.csdn.net/a_runing_man/article/details/9947343注意:这个例程的波特率和串口号都是在代码里固定的,需要自己修改 =。=!自己动手一遍,大概可以理解消息映射,成员变量的机制...

2018-06-26 16:08:27 1856 2

原创 基于stm32f103VET的ucosIII/ucos3工程keil5

资源下载:https://download.csdn.net/download/m0_37738150/10485793内容与效果:基于stm32f103VET的ucosIII/ucos3工程keil5,可以直接编译下载。创建了两个任务,在主任务中创建子任务,可以看到两个LED灯闪,可以继续添加任务。实验代码未全面测试,挪用项目需谨慎。关键步骤:1.下载keil5自带software pack,名...

2018-06-19 14:16:13 3458 1

原创 4G项目运用观察者模式,思路总结

2018-06-06 17:33:20 216

原创 初步认识ucos2的TCB任务控制块与OS_STK任务堆栈的关系

只看关键的函数,在OS任务创建函数里的两个关键函数:  psp = OSTaskStkInit(task, p_arg, ptos, opt);           //初始化任务堆栈  err = OS_TCBInit(prio, psp, pbos, id, stk_size, pext, opt);//TCB 初始化第一个是初始化任务堆栈,C语言的特点,任务切换需要保存r0到r15这些寄存器...

2018-05-31 11:44:24 2546

原创 c++设计者模式,串口中断举例

其实这玩意真的简单,但是网上资料都看不明白,如果新手在工作中遇到了这种设计模式的软件,直接问源代码作者吧,他随便讲几句话就明白了。百度上的资料都是抄来吵去,辣鸡。而且代码又臭又长,根本看不懂,本文也很可能看不懂。正文:在我的实际工程中挑选了关键代码出来,来分析串口这一块。首先定义中断类包括串口,然后串口的中断来的时候,串口中断观察者-IInterruptObserver收到一个字节,同时把它发送给...

2018-05-30 11:51:01 1161

原创 环形buffer 环形数组等原理例程

环形存储原理:(用一个类来说明)环形buff是先进先出,有两个指针,一个指示在尾部放数据,一个指示在首部取出数据,最开始都在0的位置,比如用在串口接受一个数据时,并不马上处理,用的时候再取出。class RingBuffer{private: uint8_t* Buffer;              //类似一个数组的指针 uint16_t Size;                 //数据大...

2018-05-23 17:47:39 2180

原创 信号量与消息队列的区别

出现信号量与消息队列的原因:全局变量可以承载通信的内容,但接受方任务需要不断检测此全局变量的值。所以产生了信号量与消息队列。信号量      :可以通知接收方某个事件的发生,但无法传递具体事件内容,形象的说就像我们只拨通别人的手机而不与之通话消息队列   : 可以通知接收方某个事件的发生,但并告知接收方事件内容,形象的说就像我们既拨通别人的手机又与之通话...

2018-05-23 16:44:28 4478 1

原创 win10隐藏桌面功能

win+tab-&gt;新建桌面,神奇的功能,不同的桌面显示不同的任务。特别适合上班搞事情的同学

2018-05-08 09:19:32 1903 1

原创 5分钟搞定各类USB转serial串口驱动,最简单的方法

 打开3 6 0,系统修复-&gt;驱动修复-&gt;完成修复(这里会提示有一个USB转串口的可修复,点击修复,这里我的电脑已经有驱动了,所以没有显示)   ...

2018-04-06 19:27:12 52268 2

ucos3消息队列简单应用举例(keil5工程压缩包)

task1发送一串数据,task2等待接收此数据串,接收到后通过串口1发送出来。详细说明见博客:https://blog.csdn.net/m0_37738150/article/details/80817336

2018-06-26

简单串口收发功能的MFC工程

vc++6.0的MFC工程,参考网络教程,自己动手完成的串口收发上位机,适合初学者理解建立类向导的过程,重点说明见博客:https://blog.csdn.net/m0_37738150/article/details/80816657

2018-06-26

基于stm32f103VET的ucosIII/ucos3工程keil5,可以直接编译下载,自己动手亲测可用

创建了两个任务,在主任务中创建子任务,可以看到两个LED灯闪,可以继续添加任务。

2018-06-19

stm32f103串口BootLoader工程及APP工程(自己动手,亲测可用)

stm32f103串口BootLoader工程及APP工程,完整可以做实验,上位机用SecureCrt

2018-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除