
单片机
失途老马
汽车电子基础软件工程师
展开
-
浅谈单片机c语言模块化编程-附ds1302时钟芯片驱动程序
在单片机c语言编程中,模块化编程显得非常重要。我觉得,模块化恰恰体现了c语言很好的可移植性。嵌入式编程中,硬件模块区分非常明显,所以驱动程序用模块化编程显得十分方便简洁。 详细规则不在赘述,可以百度c语言模块化编程。 大概的步骤就是,每一个c文件,命名一个h文件,尽量文件名一致,c文件中包含h文件,在其他c文件中包涵.h文件就是包含了该文件。如果函数要外部调用。原创 2012-10-18 10:35:08 · 2242 阅读 · 0 评论 -
AD9850使用小结--dds信号发生器的简易制作
图片外链失败。。这是新浪博客中本文地址:http://blog.sina.com.cn/s/blog_7e98b27d01015px2.html这一个月的电子设计培训,我们组做的事信号发生器。用的是dds模块,芯片是ad9850。从刚开始不知道从哪儿下手,到调试出正弦波。比较器的正负端(V0_p, VO_N)接示波器输出方波,可以达到10v。ad98原创 2012-12-19 22:11:03 · 7676 阅读 · 0 评论 -
光耦隔离在单片机通信电路中的应用
在实验板上做的uart,485通信等,基本上都是没有做隔离,即通信电路和系统电路共地,如果通信距离加大,会造成系统不稳定。在公司中的原理图看到了这个光电隔离电路,觉得不错,分析一下,记录下来。先上原理图,自己重绘了一下。TX,RX是单片机发出的通信信号,TX-out,RX-out是连接远程的的通信接口。当TX为高电平时,光耦导通,即TX+和TX-导通,TX-out为高电平。原创 2014-03-05 17:07:10 · 18418 阅读 · 2 评论 -
stm32基于Can和uart的IAP实现
1.公司的某个产品的结构是工业主板(uart)->控制板(can)->节点(大于1个)2.实现目的要实现不拆壳定点升级某一个节点或控制板的应用程序3.单片机硬件平台stm32F103C8T64.IAP协议Ymode协议5.移植过程1>进入IAP的过程上位机向节点发送升级命令,往flash写升级标志,软件重启后,节点进入IAP,一直在发送'C',等待有效数据。原创 2015-02-09 20:47:32 · 6220 阅读 · 3 评论 -
RTX系统内核事件重复触发
1.硬件平台STM32F1032.软件平台MDK4.2.3 RL-ARM - RTX4.23.背景:最近Debug时,发现can通信任务被不停地触发。can通信任务触发条件为if(os_evt_wait_or(0x0001,OS_10MS) == OS_R_EVT)4.问题解决RTX系统每个任务最多拥有16个事件,事件编号不是1-16,而是用位表示即1,2,4,8,16等等原创 2016-01-28 15:43:02 · 713 阅读 · 0 评论 -
基于单片机的多按键多状态检测方法
在常见的电子产品中,经常会用到按键来实现一些功能,如切换界面,长按按键操作一些特殊功能。本文讲述基于MDK RTX系统的一种独立按键键值检测,能够实现按键检测,同时多个按键按下检测,长按按键检测功能,并具有软件防抖功能。#define KEY_START_HOLD_TIME 200 //长按时间,2秒//键值enum{ K_IDLE, K_PRESSDOWN_KE原创 2016-04-20 10:07:39 · 4637 阅读 · 5 评论