嵌入式开发
文章平均质量分 64
漂在南方
这个作者很懒,什么都没留下…
展开
-
基于uCOS-II的任务池/线程池 模块
前言线程池在软件开发中应用的很广泛,其很适合处理需要并行(并发)处理大量类似任务的情况。比如在web服务器端,需要为不同的socket(用户)同时提供服务,典型的模型就是为每个socket分别分配一个线程,一对一进行服务,这就涉及到大量的线程创建和销毁操作。当然,作为一个嵌入式软件,尤其还是以uCOS为操作系统的,一般是不会拿来作为高性能web服务器的。但是还是有很多时候会需要大量动态的线程。...转载 2018-09-26 14:31:31 · 418 阅读 · 0 评论 -
机械按钮模块 纯C语言 面向对象实现 按键消抖、长按、连击
前言嵌入式开发时,我们经常会用到各种机械按钮,由于机械按钮的抖动特性,一般需要保持一个状态一段时间不变才能认为按键真的按下去/抬起来了,不然可能会出现明明只点击了一下,效果确是连击了好几下的情况。另一方面,我们为了最大化的发挥按钮的作用,还经常需要实现长按,连击等功能。在网上翻了好多人的按钮实现,发现都是面向过程写的。也不是说不行,但是每加个按钮就得为它重新写一遍各种处理函数和变量,要是...转载 2018-09-26 14:22:59 · 834 阅读 · 0 评论 -
环形缓冲区/循环队列 C语言实现
忙着毕设,很久没有写文章了,终于答辩完了,得了个校优秀毕业设计。毕设做的是个智能接口模块,用一周时间入门了,MC9S12XEP100的开发,又用一周时间入门了uC/OS-II嵌入式操作系统,在做毕设的过程中学到了很多,现在把一些工具发上来分享。这里分享一个自己用纯C实现的环形缓冲区。环形缓冲区有很多作用,比如嵌入式中的通信可以用环形缓冲区作为信道,一个线程往里放字节,一个线程取字节进行处理,只...转载 2018-09-26 14:37:17 · 852 阅读 · 0 评论 -
通用接收状态机模块
前言在软件开发的过程中,只要涉及到通信,就会涉及到数据接收机的编写,通信协议虽然多种多样,但是数据包的形式确是很相似的(暂时没看到特别复杂,此模块解决不了的),为此可以把其中通用的部分抽象出来,然后就成了这个模块。模块相关概念和逻辑接收机状态接收机有两个基本状态:状态A:preRx 等待帧头中,这个时候接收机会不断判断是否收到了特殊序列、帧头和强帧尾。如果收到了帧头,则(默认)...转载 2018-09-26 14:42:22 · 373 阅读 · 0 评论 -
MDK硬件调试_在Debug printf Viewer窗口显示打印信息_ITM
平时调试代码的时候大家都喜欢用printf函数来输出一些打印信息,来提示自己代码的执行情况。在刚开始接触这个调试方法的时候,我采用的方式就是浪费一个芯片的串口,然后利用TTL转USB模块,在PC端的串口调试助手中打印提示信息。另一种方式是硬件仿真的时候可以利用J-Link等工具实现的一种打印提示信息的方式。由于需要重定向fputc,所以两者最终只能选择其一,如果在资源不紧张的情况下,浪费一个串口其...转载 2018-09-27 16:21:14 · 1375 阅读 · 2 评论 -
stm32的互补输出和死区插入
1,简介死区,简单解释:通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥元件在应该关断时没有关断,造成功率元件烧毁。死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免...转载 2018-10-26 14:11:50 · 981 阅读 · 0 评论 -
STM32 HAL库 STM32CUBEMX KEIL TIM1_PWM 四路输出可调 (一)
硬件:TM32F407VET6,8M晶振,JLINK,JTAG ,LED灯一个软件:STM32CubeMX,KEIL_4(1)打开STM32CUBEMX,点击New Project (2)选择相应芯片选型,点击下方的“OK”(3)在Pinout界面下选择RCC,选择High Speed Clock->Crytal/Ceramic,(选择外部...转载 2018-10-26 14:25:31 · 5359 阅读 · 0 评论 -
STM32 HAL库 STM32CUBEMX KEIL TIM1_PWM 四路输出可调 (二)
(9)代码配置,点击OK(10)基本配置已完成,点击Project Generate Code 生成代码代码生成中ing记下路径,记下路径,点击CLOSE (此处直接点击“OPEN PROJECT”可能出问题)在刚才记下的路径中找到MDK-ARM文件夹里面的KEIL工程,用KEIL_4打开(11)KEIL设置电脑连接你的JLINK 选择J-LINK/J-Trance,点击Sett...转载 2018-10-26 16:20:28 · 3275 阅读 · 0 评论