- 博客(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
773
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
838
原创 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
732
原创 stm32cubeMX生成代码(HAL库)实现DMA串口收发(G0B1)
stm32cubeMX生成代码(HAL库)实现DMA串口收发(G0B1)
2021-11-28 12:00:27
3576
原创 两层神经网络,反向传导
#神经网络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
303
原创 装饰器
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
98
原创 结构体数组查询
#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
959
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
171
原创 为什么在串口接收中断函数中打印数据(串口输出数据)会导致出错?
在用华大单片机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
2884
转载 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
1485
原创 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
6964
原创 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
777
原创 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
861
原创 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
1679
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
350
原创 函数指针,与c++类的联想
#include<stdio.h>typedef void (*functionPointerType)(void);typedef struct commandstruct{ char const* name; functionPointerType Pfunction; char const *help; };void commVersi...
2018-10-06 15:53:20
224
原创 在mfc中添加控制台,实现printf
#include <io.h> #include <fcntl.h>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
1224
原创 结构体可以直接用=互相赋值,,,!
郁闷了,原来可以直接操作,绕那么大圈void main(){ STU stu1={0,10}; STU temp={12,88};//STU * p1=&stu1;//STU * p2=&temp;printf("%d-%d\n",temp.name,temp.num); temp=stu1;printf("%d-%d\n",temp.name,...
2018-09-21 16:37:23
17624
2
原创 结构体指针替换
#include<stdio.h>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
509
原创 结构体强制转换
struct student{int name;int age;}student;typedef struct student* Pstu;void main(){ int a[2]={15,16}; printf("%d",((Pstu)a)->name); printf("%d",((Pstu)a)->age);}结果:还可...
2018-09-17 20:14:13
2430
原创 结构体指针必须用->
struct student{int name;int age;}student;typedef struct student* Pstu;void main(){Pstu p;//变量定义p->name=0;p.age=0;}compile:error C2231: '.age' : left operand points to 'struct', use...
2018-09-17 19:46:50
3832
原创 二维数组malloc与free
特别适用于C语言动态字符串数组操作#include <stdio.h>typedef unsigned int wchar;#define LENGTH 10//需求:字符串数组的二维数组动态开辟//name[n][LENGTH] 。。。。。。。。。。// 。。。。。。。。。。// 。。。。。...
2018-09-17 18:52:11
5482
原创 同级传递形参达不到想要效果,平级指针传递也不行
#include <stdio.h>typedef unsigned int wchar;int i=9;//全局变量,指针固定int * changeptr(int * p)//指针加1{p=p+1;return p;}void main(){ int *addr=&i; printf("%d\-%d\n",&i,i);...
2018-09-17 18:15:15
223
原创 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
973
原创 结构体指针做形参(两个结构体互换)
对比两个程序就懂啦,我真聪明,竟然想出这种直接互换结构体的方法程序一:#include <stdio.h>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
8090
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<N;i++) { a[i]=i+1;...
2018-09-06 13:56:28
2250
原创 积累之函数指针(代码)
#include <stdio.h>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
174
原创 积累之按键防抖动(代码+图解)
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
6217
1
原创 ucos3消息队列的应用(stm32f103),keil5工程压缩包
压缩包下载链接:见下方评论处。说明:两个重要的函数,见图中红色方框,task1发送一串数据,task2一直等待数据的到来,到来后通过串口一发送出来,通过串口助手观察。Attention!在完成过程中,发现在stm32使用时,需要先初始化等等一系列复杂的东西,请留意。...
2018-06-26 16:42:04
936
原创 自己动手模仿的串口上位机MFC简单工程
完整的项目工程压缩包:见下发评论处的链接。参考教程:https://blog.youkuaiyun.com/a_runing_man/article/details/9947343注意:这个例程的波特率和串口号都是在代码里固定的,需要自己修改 =。=!自己动手一遍,大概可以理解消息映射,成员变量的机制...
2018-06-26 16:08:27
1912
1
原创 基于stm32f103VET的ucosIII/ucos3工程keil5
资源下载:https://download.youkuaiyun.com/download/m0_37738150/10485793内容与效果:基于stm32f103VET的ucosIII/ucos3工程keil5,可以直接编译下载。创建了两个任务,在主任务中创建子任务,可以看到两个LED灯闪,可以继续添加任务。实验代码未全面测试,挪用项目需谨慎。关键步骤:1.下载keil5自带software pack,名...
2018-06-19 14:16:13
3532
1
原创 初步认识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
2722
原创 c++设计者模式,串口中断举例
其实这玩意真的简单,但是网上资料都看不明白,如果新手在工作中遇到了这种设计模式的软件,直接问源代码作者吧,他随便讲几句话就明白了。百度上的资料都是抄来吵去,辣鸡。而且代码又臭又长,根本看不懂,本文也很可能看不懂。正文:在我的实际工程中挑选了关键代码出来,来分析串口这一块。首先定义中断类包括串口,然后串口的中断来的时候,串口中断观察者-IInterruptObserver收到一个字节,同时把它发送给...
2018-05-30 11:51:01
1259
原创 环形buffer 环形数组等原理例程
环形存储原理:(用一个类来说明)环形buff是先进先出,有两个指针,一个指示在尾部放数据,一个指示在首部取出数据,最开始都在0的位置,比如用在串口接受一个数据时,并不马上处理,用的时候再取出。class RingBuffer{private: uint8_t* Buffer; //类似一个数组的指针 uint16_t Size; //数据大...
2018-05-23 17:47:39
2250
原创 信号量与消息队列的区别
出现信号量与消息队列的原因:全局变量可以承载通信的内容,但接受方任务需要不断检测此全局变量的值。所以产生了信号量与消息队列。信号量 :可以通知接收方某个事件的发生,但无法传递具体事件内容,形象的说就像我们只拨通别人的手机而不与之通话消息队列 : 可以通知接收方某个事件的发生,但并告知接收方事件内容,形象的说就像我们既拨通别人的手机又与之通话...
2018-05-23 16:44:28
4628
1
原创 5分钟搞定各类USB转serial串口驱动,最简单的方法
打开3 6 0,系统修复->驱动修复->完成修复(这里会提示有一个USB转串口的可修复,点击修复,这里我的电脑已经有驱动了,所以没有显示) ...
2018-04-06 19:27:12
53643
2
ucos3消息队列简单应用举例(keil5工程压缩包)
2018-06-26
简单串口收发功能的MFC工程
2018-06-26
基于stm32f103VET的ucosIII/ucos3工程keil5,可以直接编译下载,自己动手亲测可用
2018-06-19
stm32f103串口BootLoader工程及APP工程(自己动手,亲测可用)
2018-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人