自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 中断不可重入的函数

2019-03-19 17:34:27 643

原创 N个NOP怎么写程序

/* 宏定义0~9个nop */#define NOP0#define NOP1 NOP0; nop#define NOP2 NOP1; nop#define NOP3 NOP2; nop...#define NOP9 NOP8; nop/* 宏定义10、20、30...90个nop */#define NOP00#define NOP10 NOP9; ...

2019-03-19 15:19:15 1637

转载 状态机编程

有限状态机的工作原理:发生事件(event)后,根据当前状态(cur_state),决定执行的动作(action),并设置下一个状态号(nxt_state)。 状态机可以用两种方法实现:竖着写(在状态中判断事件)和横着写(在事件中判断状态)。这两种实现在本质上是完全等效的,但在实际操作中,效果却截然不同。竖着写(在状态中判断事件)C代码片段: ...

2019-03-19 13:29:34 9719 1

原创 AT24C02软件设计与应用

单片机操作AT24C02的通讯过程也就是IIC的通讯过程, IIC通讯过程是一个要求一气呵成的通讯过程,中间不能被其它中断影响时序出错,因此在整个通讯过程中应该先关闭总中断,完成之后再开中断。在写入或者读取完一个字节之后,一定要加上一段延时时间。在连续写入或者读取一串数据时容易丢失数据。如果一旦发现丢失数据,应该适当继续把这个时间延长,尤其是在写入数据时。单片机跟AT24C02通讯的2根I...

2019-03-19 13:19:20 2142 1

原创 数据存储大端小端模式的理解

Big-Endian和Little-Endian的定义如下:1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:1)大端模式:低地址 -------------...

2019-03-19 13:17:34 505

转载 理解重入与不重入函数

转:https://www.cnblogs.com/AlwaysOnLines/p/3912680.html可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程...

2019-03-15 10:39:41 264

原创 瑞萨单片机

1.入门https://blog.csdn.net/yjydyod/article/details/80018972版权声明:本文为博主原创文章,转载请声明本文作者为yjydyod,转载自:https://blog.csdn.net/yjydyod2.论坛http://bbs.elecfans.com/group_741#groupnavhttps://www.amobbs...

2019-03-15 09:07:52 1772 1

原创 STC8A 采集外部P1.2电压串口输出(0-5V)

1.直接来上参考代码#include "STC8Axx.h"u16 xdata adc0;u8 xdata Adc0Finish;u16 xdata AdcBuff[10];u8 xdata AdcTimes;void adc_init(void);void BatteryVoltage_ADC_ON(void);u16 GetBattery...

2019-03-08 21:19:46 3595 1

原创 延时操作之宏定义与函数调用的差别

#define NOP(N) NOP##N()void delayNnop(u16 m){ u16 i; for(i=0;i<m;i++) { _nop_(); } }带参数的宏使用与通过函数调用是有差别的。特别延时较短的时候,宏定义是更加合适的。因为调用函数是需要时间的参考其它...

2019-03-07 18:52:28 1531

原创 单片机串口超时接收机制

在使用单片机的时候串口是与外界通讯最常用的一种方法在处理接收的时候超时处理是一种常见的方法。参考代码如下://串口0 中断函数void UART0_Isr() interrupt 4 using 1{ if (TI) { busy0 = 0; TI = 0; ...

2019-03-06 14:25:17 6304

原创 STC8A 验证Xmodem通讯协议

1.将keil的生成的"xxx.hex"程序文件通过应用程序 hex2bin转化为bin格式文件。2. 阅读Xmodem协议理解通讯流程 发送端(PC端) 接收端(单片机端) <<<<<<<<<&...

2019-02-28 14:35:57 421

原创 查询法实现单片机通讯

单片机发送的时候查询发送标志位,注意开启中断的情况参考C代码:void UartChangePin(u8 port,u8 ConfigPin){ if(0==port) { /* // P_SW1 = 0x00; //RXD /P3.0, TXD /P3.1 // P_SW1 = 0...

2019-02-28 14:22:17 986

原创 单片机输出把整型输出字符

void    Tx_DEC_U16(u16 j){    u8    i;    u8    tmp[10];    for(i=4; i<5; i--)        {        tmp[i] = j % 10 + '0';        j = j / 10;    }        for(i=0; i<4; i++)    {        i...

2019-02-27 17:40:51 888

原创 对单片机寄存器的位值1与置0的一种常见写法

void    SetTimer2Baudraye(u16 dat){    AUXR &= ~(1<<4);    //Timer stop                    //置0    AUXR &= ~(1<<3);    //Timer2 set As Timer    AUXR |=  (1<<2);    //Tim...

2019-02-27 13:06:04 4560

原创 stm32程序学习过程问题记录

 1.   printf(" %s [%s] (%s)\r\n", NAME, VERSION, DATE); 怎么理解stm32这个函数  2.

2019-02-25 14:34:59 205

原创 系统滴答定时器

系统结构工作过程编程思考注意要点

2019-02-25 09:12:10 372

原创 串口超时退出代码段

void UART1_RxPackage(void){ u16 j; //5ms³¬Ê±//RI = 0; RxCnt = 0; for(j = 0; j < 2000; j++) //5ms³¬Ê±Í˳ö { if(RI) { RI = 0; RxBuff[RxCnt] = SBUF; if(++RxCnt >= 1...

2019-02-22 17:29:45 801

原创 执行调写法整指定内存执行程序的C语言,对指定地址进行赋值

方法1: 对函数指针进行理解u16               JumpAddress;typedef          void (*pFunction)(void);pFunction      Jump_To_Application; JumpAddress=0x8052;Jump_To_Application = (pFunction) JumpAddress; Jum...

2019-02-22 17:03:11 879

转载 单片机应用消息队列

消息队列可以用来处理报警,异常等等方面对时序要求不高的任务。#defineu8unsignedchar#defineucharunsignedchar#defineu16unsignedint#defineuintunsign...

2018-10-23 19:25:58 4943

原创 在单片机编程环境里,为什么使用typedef比#define 好?好在那里呢

2018-08-22 09:38:22 934

原创 三问三不问

1

2018-08-15 08:48:23 470

原创 0.084的故事

  今天在审查PCB的时候,应为两根线需要重合进行V 割。审查发现ch重合度差了0.084mm。心理方面是不太乐意进行修改的,一方面修改动作很大时间长,而且不影响生产测试。   可是生产审核 方面建议修改不能有一丝的容忍,这个心态是正确的。记录下来,工程师一个不放过一丝的细节问题。发现了问题一定要解决,也许很麻烦。但是是职业的基本素养。...

2018-07-18 14:05:15 397

原创 好的工作周报

     周报不仅是对自己工作规划的总结,同时也是自我推销的一种展示方式。也是对工作清晰的规划提高效率的一种有效手段。另外,工作周报需要注意要点。     1. 语言简练     2. 结果为导向,汇报项目进展     3. 问题的核心,未完成的简要分析     4. 如果项目没有按期进行,详细分析是否需要外部协作,调用部门资源(人的协作,资源的获取)     5. 客观的...

2018-07-18 08:53:36 2938

原创 阅读单片机程序代码

1.看主循环,理解整体架构2.添加流程的注解,同时验证3.提取精华代码片段保存,可以经过简单修改重复利用4.API接口函数,理解每一个函数的意义5.修改代码验证自己的理解6.优化算法与代码7.反复理解与做笔记...

2018-07-03 09:19:10 1536 1

原创 长按算法代码片段笔记

//按键扫描及休眠控制. 20ms执行一次 主频4M  void key_scan(void)  {      static u8 DownTimes;      if(  (DATA_BUF[0]!=0 )  ||  ( DATA_BUF[1]!=0 ) )       {                    if(KeyPress_OnceFlag==1)          {       ...

2018-06-27 14:01:46 290

原创 单总线设计

1. 理解上拉电阻 是否应该使用外部上拉电阻和内部上拉电阻 ,有些情况必须是使用外部上拉电阻2. 软件驱动API  

2018-06-26 08:58:53 868

原创 论美学与PCB设计

1. 优秀的作品与普通作品的差别   一眼能看透2. 如何才是美3.怎么才是美的PCB4.软件代码是否也需要追求美的概念

2018-06-19 11:13:05 344

原创 合泰时基中断应用笔记

合泰单片机时基可以作为系统滴答时钟来使用处理与时间延时等等相关任务void InitTimerBase(void){ _tbc = 0b11000101;//fSYS/4 _tb0f = 0; _tb0e = 1; _emi = 1; }//4ms 时基中断void TimerBase0_ISR(void){ _tb0f = 0; ...

2018-06-12 10:42:16 2594 2

原创 ISO9000管理模式与IPD管理模式

理解这两个的概念,如何实现这个研发管理机制。

2018-05-28 10:27:22 1946

转载 单片机程序优化考虑的方向

 来源网络 CSDN使用尽量小的数据类型 使用自加、自减指令 减少运算的强度 while 与do...while 的区别register 关键字  volatile 关键字 以空间换时间 宏函数取代函数 适当地使用算法 用指针代替数组 强制转换 减少函数调用参数 switch 语句中根据发生频率来进行case 排序将大的switch 语句转为嵌套switch 语句 函数指针妙用 循环嵌套 内联函数...

2018-05-23 10:37:07 563

原创 单片机系统程序常见的算法与结构

1.1 时间片轮询架构1.2 单片机的非OS的事件驱动1.3 单片机基于状态机和任务队列的程序设计1.4 基于消息的单片机多任务编程1.5 单片机的FIFO(先入先出)循环队列实现1.6 利用时间触发式系统开发嵌入式产品1.7 单片机组件开发模式...

2018-05-22 21:21:25 3082 1

原创 单总线解析与DS2401驱动程序设计

单总线解析与DS2401驱动程序设计1单总线协议(1-wire)定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制。特点:这是由达拉斯半导体公司推出的一项通信技术。它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的。优点:单总线技术具有线路简单,硬件开销少,成本...

2018-05-14 10:11:04 5185 1

原创 定时器的分时复用输出PWM方法考虑

任务背景:因为只有一个定时器可以通过两个IO输出PWM波形,两个IO不可以同时使用,同时输出那么相互反向。现在需要控制定时器在不同时间输出PWM。思路分析设计:令牌模式,每次使用的时候均需要确定定时器是否被占用。...

2018-02-27 15:50:25 1610

原创 CRC-8/MAXIM验证实战记录

使用的CRC-8/MAXIM: 参数模型: x8+x5+x4+1 在调试MAXIM一款ds2401芯片的时候,crc的验证成功代码记录:环境采用了啊哈C编译 代码来自网络#include   #include     //CRC8  CRC 校验的等效多项式是: CRC = x8 + x5 + x4 + 1 DS2401  /* 测试用例 使

2018-01-13 21:39:27 6301 1

原创 msp430串口接收调试

一、串口调试出错         串口接收配置需要注意的是开启总中断( __enable_interrupt(); ),不能仅开启串口接收中断。#include //**********************************************//RS485芯片方向控制//***********************************************v

2016-06-17 17:52:45 5682

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除