
C语言
happyorzking
上古语言使用者
展开
-
事件驱动?逻辑控制?信号槽?
事件驱动?逻辑控制?基于回调的事件驱动或者逻辑控制特点代码接口实现用法基于回调的事件驱动或者逻辑控制本文提供了一种单线程编程思路,并简单实现了该思路。受PLC编程线圈和触点概念的启发。将程序抽象理解成一条条因果逻辑,即条件和动作。当条件满足时执行动作。实现业务逻辑时只需要将条件和动作对应实现。特点1.将条件和动作关联起来管理,区别于一般的事件驱动。2.使用void指针,条件函数和动作函数都可以有参数。3.例子里使用数组实现命令表,适合MCU,也可以使用链表。代码接口/*cmd.h*原创 2021-03-17 00:25:41 · 332 阅读 · 0 评论 -
单核单线程下的编程要点
单核单线程下的编程要点一句话概括等待:占着茅坑不拉屎是不对的长任务:高速上不许开慢车状态机:下班了就打游戏,赢了这局就睡觉中断:老板来了提醒我凡事无绝对一句话概括多用if,少用while,用查询代替死等,尽一切可能减少大循环执行的时间。等待:占着茅坑不拉屎是不对的大部分的问题出在死等,不管你是delay(),还是等某个信号while(XX_FLAG==1),通通不行。这会造成CPU宝贵时间...原创 2019-10-18 17:38:13 · 703 阅读 · 0 评论 -
C语言 宏定义相关整理
宏定义 宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译 不带参数的宏定义: 宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define 标识符 字符串 其中的标识符就是所谓的符号常量,也称为“宏名”。 预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。 掌握”宏”概原创 2015-10-28 11:01:38 · 578 阅读 · 0 评论 -
试着用宏拼接做stm32管脚电平控制
试着用宏拼接做stm32管脚电平控制代码块//led.h#ifndef __LED_H_#define __LED_H_#include "stm32f10x.h"//#define LED_ON(n) (GPIO_ResetBits(LED_PORT_##n,LED_PIN_##n))//#define LED_OFF(n) (GPIO_SetBits(LED_PORT_##n,LED_原创 2016-12-07 03:10:42 · 1086 阅读 · 0 评论 -
STM32的FLASH操作【转载】
**STMSTM2的FLASH操作【转载】** 说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。FLASH分类根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。主存储块用于存储程序,我们写的程序一般存储在这里。信息块又分成两部分:系统存储器、选项转载 2016-09-07 11:34:41 · 774 阅读 · 0 评论 -
对个geek青年的状态机,查表纯C实现的代码修改
对个geek青年的状态机,查表纯C实现的代码修改感谢杨福贵老师无私的开源精神,原文出处 http://blog.youkuaiyun.com/younggift/article/details/35848677 建议阅读原文,杨老师的讲解很精彩 下面贴出代码/*上层需要维护 1)enum state//状态类型枚举 2)enum message//消息类型枚举 3)struct transitio原创 2017-03-06 16:16:40 · 796 阅读 · 0 评论 -
关于C的一点小感悟 持续更新
1.多用static可以少用全局变量 2.不需要被外部文件调用的函数用static隐藏 3.不便用动态分配内存的地方(单片机),可以用static在模拟的构造函数内模拟实例化对象返回指针。实际上内存已经在编译时分配(是静态的),但要注意函数的调用次数,需要调用多次时用数组(会造成内存浪费)。原创 2017-09-20 16:59:16 · 220 阅读 · 0 评论 -
用C语言实现简单的神经元
用C语言实现简单的神经元工作之余研究一下时下大热的人工神经网络,因工作原因本人对C语言使用较为顺手于是手工l新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图...原创 2019-01-17 11:08:54 · 1613 阅读 · 0 评论