基于stm32的TM1650驱动程序,接口曾经宏定义,方便移植。
亲测可用
2020/3/7 11:37:31 2KB TM1650
1
基于STM32F103的矩阵键盘代码,引脚可根据您的需求和爱好随意定义,无论连不连续都可以!引脚信息已经在key4_4.c中宏定义好了,只需要在宏定义中修改你定义的引脚时钟、引脚号和引脚对应的端口即可!非常方便。
可轻松移植到其他程序,移植完即可使用,已经验证过,请放心使用,只需线不接错或接反都没什么问题的。
具体请看我的博文https://blog.csdn.net/qq_36112455/article/details/99013013。
注:下载积分是随着下载人数增加而自动增加的,一开始只是3C,现在都13C了,我设置不了,我也没办法!
2022/12/22 0:34:55 6.83MB STM32 矩阵键盘 单片机 C语言
1
操作系统实验指导书,一个nesC应用程序有三个部份。
:一连串的C声明和定义,一组接口类型,和一组组件。
nesC应用程序命名环境构造如下:最外层的全局命名环境,包含三个命名域:一个C变量,一个用于C声明和定义的C标签命名域,和一个用于组件和接口类型的组件和接口类型命名域。
通常,C声明和定义可以在全局命名环境内部引入自己的嵌套命名域(用于函数声明和定义的函数内部代码段,等等)。
每个接口类型引入一个命名域,用于保存接口的指令或事件。
这种命名域是嵌套于全局命名环境的,所以指令和事件定义能影响全局命名环境中的C类型和标签定义。
每个组件引入二个新命名域。
规格命名域,嵌套于全局命名环境,包含一变量命名域用于存放组件规格元素。
实现命名域,嵌套于规格命名域,包含一个变量和一个标签命名域。
对于结构,作用范围变量命名域包含组件用以引用其包含组件的名字(7.1节).对于模块,作用范围保存作业,以及模块体中的C声明和定义。
这些声明,及其它可能引入自己的嵌套在作用范围内的命名域(比如函数体,代码段等等).由于这种命名域的嵌套结构,模块中的代码可以访问全局命名环境中的C声明和定义,但是不能访问其他组件中的任何声明或定义.。
构成一个nesC应用程序的C声明和定义,接口类型和组件由一个随选的装载程序决定。
nesC编译器的输入是一个单独的组件K。
nesC编译器首先装载C文件(第9.1节),然后装载组件K(9.2节)。
程序所有代码的装载是装载这两个文件的过程的一部分。
nesC编译器假定所有对函数,指令及事件的调用不以自然的属性(第10.3节)都发生被装载的代码中(例如.,没有对非自然的函数"看不见的"调用)。
在装载文件预处理的时候,nesC定义NESC符号,用于识别nesC语言和编译器版本的数字XYZ。
对于nesC,XYZ至少为110。
装载C文件,nesC组件及接口类型的过程包括定位对应的资源文件。
文件定位的机制不是本参考手册中所要讨论的。
要详细了解通用编译器是如何作业的,请阅读《thenccmanpage.》装载C文件X如果X已经被装载,就不用再做什么。
否则,就要定位并预处理文件X.h。
C宏定义(由#define和#undef)的改变会影响到所有的后面的文件预处理。
来自被预处理的文件X.h的C声明和定义会进入C全局命名环境,因而对所有的后来的C文件加工,接口类型和组件是有影响的。
2015/2/14 1:08:24 1.18MB 指导书
1
操作系统实验指导书,一个nesC应用程序有三个部份。
:一连串的C声明和定义,一组接口类型,和一组组件。
nesC应用程序命名环境构造如下:最外层的全局命名环境,包含三个命名域:一个C变量,一个用于C声明和定义的C标签命名域,和一个用于组件和接口类型的组件和接口类型命名域。
通常,C声明和定义可以在全局命名环境内部引入自己的嵌套命名域(用于函数声明和定义的函数内部代码段,等等)。
每个接口类型引入一个命名域,用于保存接口的指令或事件。
这种命名域是嵌套于全局命名环境的,所以指令和事件定义能影响全局命名环境中的C类型和标签定义。
每个组件引入二个新命名域。
规格命名域,嵌套于全局命名环境,包含一变量命名域用于存放组件规格元素。
实现命名域,嵌套于规格命名域,包含一个变量和一个标签命名域。
对于结构,作用范围变量命名域包含组件用以引用其包含组件的名字(7.1节).对于模块,作用范围保存作业,以及模块体中的C声明和定义。
这些声明,及其它可能引入自己的嵌套在作用范围内的命名域(比如函数体,代码段等等).由于这种命名域的嵌套结构,模块中的代码可以访问全局命名环境中的C声明和定义,但是不能访问其他组件中的任何声明或定义.。
构成一个nesC应用程序的C声明和定义,接口类型和组件由一个随选的装载程序决定。
nesC编译器的输入是一个单独的组件K。
nesC编译器首先装载C文件(第9.1节),然后装载组件K(9.2节)。
程序所有代码的装载是装载这两个文件的过程的一部分。
nesC编译器假定所有对函数,指令及事件的调用不以自然的属性(第10.3节)都发生被装载的代码中(例如.,没有对非自然的函数"看不见的"调用)。
在装载文件预处理的时候,nesC定义NESC符号,用于识别nesC语言和编译器版本的数字XYZ。
对于nesC,XYZ至少为110。
装载C文件,nesC组件及接口类型的过程包括定位对应的资源文件。
文件定位的机制不是本参考手册中所要讨论的。
要详细了解通用编译器是如何作业的,请阅读《thenccmanpage.》装载C文件X如果X已经被装载,就不用再做什么。
否则,就要定位并预处理文件X.h。
C宏定义(由#define和#undef)的改变会影响到所有的后面的文件预处理。
来自被预处理的文件X.h的C声明和定义会进入C全局命名环境,因而对所有的后来的C文件加工,接口类型和组件是有影响的。
2017/1/3 12:03:08 1.18MB 指导书
1
本人做的FFPLAY移植到VC下的开源工程:ffplayforMFC。
本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下。
并且使用MFC做了一套简单的界面。
它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。
此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等功能。
通过本程序可以学习视频播放器原理,以及SDL和Windows消息机制等。
代码中包含了比较详细的注释。
1.1版(2014.7.10)*更换了部分界面*原工程支持Unicode编码*修复了Release下的Bug*添加了两个宏定义"INT64_MININT64_MAX",在没有安装Win7SDK的情况下,可能会出现找不到定义的情况。
2020/3/3 16:41:19 12.3MB ffplay mfc
1
本人做的FFPLAY移植到VC下的开源工程:ffplayforMFC。
本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下。
并且使用MFC做了一套简单的界面。
它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。
此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等功能。
通过本程序可以学习视频播放器原理,以及SDL和Windows消息机制等。
代码中包含了比较详细的注释。
1.1版(2014.7.10)*更换了部分界面*原工程支持Unicode编码*修复了Release下的Bug*添加了两个宏定义"INT64_MININT64_MAX",在没有安装Win7SDK的情况下,可能会出现找不到定义的情况。
2016/2/18 17:19:27 12.3MB ffplay mfc
1
msp430的12864实时动态绘制波形图程序,可循环显示波形自动清除残留数据,适合做示波器、心电图等,含详细正文,宏定义稍作修改即可用于其他单片机
2018/6/13 13:58:08 4KB 12864 波形 绘图 实时显示
1
最新中文版。
功能强大。
通用型。
支持修正键数最多。
可在不同的窗口下实现不同的功能。
支持宏定义,转码,热键等等。
占用内存极小。
2016/11/10 2:15:22 2.92MB 鼠标 快捷键 自定义
1
最新中文版。
功能强大。
通用型。
支持修正键数最多。
可在不同的窗口下实现不同的功能。
支持宏定义,转码,热键等等。
占用内存极小。
2016/11/10 2:15:22 2.92MB 鼠标 快捷键 自定义
1
CSerialPortFirstVersionbyRemonSpekreijseon2000-02-08http://www.codeguru.com/cpp/i-n/network/serialcommunications/article.php/c2483/A-communication-class-for-serial-port.htmSecondVersionbymrlongon2007-12-25https://code.google.com/p/mycom/增加ClosePort增加WriteToPort两个方法增加SendData与RecvData方法byliquanhaion2011-11-04http://blog.csdn.net/liquanhai/article/details/4955253增加ClosePort中交出控制权,防止死锁问题byliquanhaion2011-11-06http://blog.csdn.net/liquanhai/article/details/6941574增加ReceiveChar中防止线程死锁byviruscampon2013-12-04https://github.com/viruscamp/CSerialPort增加IsOpen判断能否打开修正InitPort中parityOddEven参数取值错误修改InitPort中portnr取值范围,portnr>9时特殊处理取消对MFC的依赖,使用HWND替代CWnd,使用win32thread函数而不是MFC的增加用户消息编号自定义,方法来自CnCommbyitas109on2014-01-10http://blog.csdn.net/itas109/article/details/18358297解决COM10以上端口无法显示的问题扩展可选择端口,最大值MaxSerialPortNum可以自定义添加QueryKey()和Hkey2ComboBox两个方法,用于自动查询当前有效的串口号。
byliquanhaion2014-12-18增加一些处理措施,主要是对减少CPU占用率byitas109on2016-05-07http://blog.csdn.net/itas109修复每次打开串口发送一次,当串口无应答时,需要关闭再打开或者接收完数据才能发送的问题。
解决办法:在m_hEventArray中调整m_hWriteEvent的优先级高于读的优先级。
CommThread(LPVOIDpParam)函数中读写的位置也调换。
参考:http://zhidao.baidu.com/link?url=RSrbPcfTZRULFFd2ziHZPBwnoXv1iCSu_Nmycb_yEw1mklT8gkoNZAkWpl3UDhk8L35DtRPo5VV5kEGpOx-Gea修复停止位在头文件中定义成1导致SetCommState报错的问题,应为1对应的停止位是1.5。
UINTstopsbits=ONESTOPBITswitch(stopbits)和switch(parity)增加默认情况,增强程序健壮性byitas109on2016-06-22http://blog.csdn.net/itas109增加ReceiveStr方法,用于接收字符串(接收缓冲区有多少字符就接收多少字符)。
解决ReceiveChar只能接收单个字符的问题。
byitas109on2016-06-29http://blog.csdn.net/itas109解决RestartMonitoring方法和StopMonitoring方法命令不准确引起的歧义,根据实际作用。
将RestartMonitoring更改为ResumeMonitoring,将StopMonitoring更改为SuspendMonitoring。
增加IsThreadSuspend方法,用于判断线程能否挂起。
改进ClosePort方法,增加线程挂起判断,解决由于线程挂起导致串口关闭死锁的问题。
增加IsReceiveString宏定义,用于接收时采用单字节接收还是多字节接收byitas109on2016-08-02http://blog.csdn.net/itas109https://github.com/itas109改进IsOpen方法,m_hComm增加INVALID_HANDLE_VALUE的情况,因为CreateFile
2021/9/12 2:07:30 19KB CSerialPort 串口类 串口
1
共 44 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡