C语言应用
文章平均质量分 73
编程让世界美好
技术宅拯救世界
展开
-
IAR_Register窗口
R1,R2…R12是指寄存器,就RISC架构的ARM单片机而言,他们是用于存放数据,地址的。ARM处理器访问内存时,内存只能由特殊的加载指令读取,数据操作只发生在寄存器。如图所示,处理while(counter原创 2024-10-14 15:27:18 · 833 阅读 · 0 评论 -
AT32实现的esp8266-esp12 TLink上报下发
本文采用芯片at32f435,由两部分组成,Tlink平台相关设置,设备代码相关。硬件相关可以理解成WiFi模块连接的串口,本文函数名是uart2但是实际上用的是Com3,可能是老师也是移植的原因。AT指令含义相关请在at指令技术文档查询或相关经验帖查看,关键词"esp8266 AT指令",这里不再赘述,请根据实际情况调整。为提高各位的移植成功率,我对代码进行了简单的"提炼"。原创 2024-06-10 20:23:17 · 348 阅读 · 1 评论 -
cola_os学习笔记(下)
我由此联想到可能存在一种情况,即上层需求和底层接口不符的情况,一个device不能囊括所有的设备应用需求。不过适合的才是最好的,具体问题具体分析。在stm32_usart.c的第139行,我们可以看到:声明为cola_device_ops之后,该结构体变量就能引出下面的那些读写用法。 值得注意的是58行,可以得出整体采用的是单链表的结论,而且是从下往上的,从IO到应用层。find是基于对设备name的比较判断实现的,assert用于DEBUG,设备write的入口参数为设备、起始、字符串、长度。原创 2024-08-25 17:49:06 · 539 阅读 · 0 评论 -
cola_os学习笔记(上)
这个软件架构是我无意间在csdn刷到的。通过学习cola_os,可以了解熟悉一个程序架构需要的部件、项目建设的流程和结构等,由于此项目不像linux一样是开源建设的大工程,该架构提供的大部分内容必然是程序架构必需的,触类旁通。本笔记侧重于对该架构的理解解读,对于作者已经阐述的内容,尽量不重复,一方面是尊重作者的原创内容,另外一方面是希望用自己的话讲述以更好地掌握知识原创 2024-08-25 15:40:01 · 897 阅读 · 0 评论 -
C语言的最小可分配ID【四种解法】
对于n个ID,如果存在小于n的可用ID,必然存在某个ID不在[0,n)这个范围内。否则这些ID⼀定是0到(n-1)的某个排列,这种情况下,最小的可用ID是n。 使用⼀个长度为n + 1的数组,来标记区间[0,n]内ID是否可用,长度为n+1是因为n-0+1。 初始化数组->小于n则标为1->遍历从0到 n 的所有数字,第一个未标记的数字就是最小的缺失非负整数,将其返回。 优化一般从时间和空间考虑,解法二使用数组,用空间换取了时间,数组很大的时候,空间带来的性能问题不得不考虑。原创 2024-08-03 15:22:21 · 369 阅读 · 0 评论 -
基于C语言实现的一种按键软件消抖
它通过对 previous和 current 执行位或操作来获取从打开变为关闭的引脚的掩码。然后与 asserted进行位与操作,从而在 asserted 中关闭这些特定的位。它通过对 previous和 current 执行位与操作来获取从关闭变为打开的引脚的掩码。每次重新读取原始状态时,只需调用此函数,并使用返回的值作为去抖后的信号。如果需要三个或更多连续相同的读数,只需将`previous`替换为两个或更多的先前状态。4. 最后,函数返回 asserted变量,现在它包含了引脚的去抖状态。原创 2024-07-22 00:29:51 · 649 阅读 · 0 评论 -
easyX的基本绘制使用案例
这些绘制函数都可以在easyX中使用,可以根据需要选择合适的函数来绘制不同的图形。需要注意的是,绘制之后需要使用flushbuffer函数或者delay函数来刷新屏幕,使绘制内容显示出来。安装和配置:在使用easyX之前,需要正确安装easyX,并配置好开发环境。键盘和鼠标事件处理:easyX提供了处理键盘和鼠标事件的函数,开发者可以根据需要进行相应的事件处理。绘制顺序:多个绘图函数的绘制顺序会影响图形的显示效果,需要注意绘制的顺序。除了上述绘制函数,easyX还提供了其他一些辅助函数,如文本绘制函数(原创 2024-07-11 23:34:59 · 653 阅读 · 0 评论