随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

随笔分类 -  编程

上一页 1 2 3 4 下一页
单片机 c语音
段式液晶驱动方法
摘要:段式液晶有3个参数:电压VCC、duty(=1/com、偏压。需要交流驱动:亮时压差(comx-segx)先为+VCC,一定时间后,变为-VCC;不亮时,压差为0,先是(com=seg=vcc),一定时间后(com=seg=0) https://www.sekorm.com/news/2882.ht 阅读全文
posted @ 2018-03-30 17:26 杰瑞鼠 阅读(678) 评论(0) 推荐(0) 编辑
MODBUS移植的参考文章
摘要:http://www.modbus.org/specs.php https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32 http://www.360doc.com/content/14/0906/09/17350204_40738980 阅读全文
posted @ 2017-12-25 10:26 杰瑞鼠 阅读(548) 评论(0) 推荐(0) 编辑
tera term 的一个命令解析脚本
摘要:;用虚拟串口虚拟2个串口,tera term使用串口2 ;设置串口2 波特率 115200,超时500ms;如果收到串口发来OK则回复SUCCESS;如果收到ERROR则回复faile;若超时则发送timeouts.connect " /c=2 /BAUD=115200" timeout = 0mt 阅读全文
posted @ 2017-12-08 18:05 杰瑞鼠 阅读(5052) 评论(0) 推荐(0) 编辑
c库函数-字符串
摘要:一 strok:从字符串中按照分隔符提取所有字串 char s[] = "水发产品,47.6,不合格,mg/kg,17-05-21 15:04;"; char *delim = ",;"; //分隔符列表 char *p; printf("%s\n", strtok(s, delim)); whil 阅读全文
posted @ 2017-11-07 09:11 杰瑞鼠 阅读(183) 评论(0) 推荐(0) 编辑
基于时间系统的状态机
摘要:1根据各任务的周期执行时间确定轮询间隔,注意(轮询时间间隔只能比任务执行时间稍长,但一定不能断) 2 用一个定时器,基准定时为各任务的最小公倍数;软件计数器累加从而触发各任务标志(对任务进行字节编码) 3主函数中分别操作:Toggle_Task();//设置各标志,这里可以是非时间触发的事件 sle 阅读全文
posted @ 2017-04-27 16:25 杰瑞鼠 阅读(470) 评论(0) 推荐(0) 编辑
转《最优状态机》
摘要:转自 用C语言实现状态机设计模式 阅读全文
posted @ 2017-04-27 16:12 杰瑞鼠 阅读(218) 评论(0) 推荐(0) 编辑
状态机编程-队列缓冲事件,事件可异步触发
摘要:/*根据http://www.cnblogs.com/autosar/archive/2012/06/22/2558604.html整理*/typedef int State; /*状态*/typedef int Condition;/*事件*/#define STATES (3 + 1) /*总共 阅读全文
posted @ 2017-04-27 16:07 杰瑞鼠 阅读(1260) 评论(0) 推荐(0) 编辑
code与const void*指针
摘要:关于指针: 当定义int *p时,它也会在内存中给指针变量p分配一个内存单元,假设这个单元在内存的编址为0x1003;此时,0x1003中的值是不确定的,(因为我们没有给指针赋值),当编译器遇到了p=&a时,就会在0x1003单元中保存一个地址(变量a在内存中分配的地址) 空指针:不指向任何单元,仿 阅读全文
posted @ 2017-04-05 16:32 杰瑞鼠 阅读(703) 评论(0) 推荐(0) 编辑
串口双机或多机通讯
摘要:双机或多机通讯中主从机的启动顺序存在时间差,如果处理不好,就会出现通讯时好时坏的情况。 若使用dma:dma使能应在串口dma 之前或者串口使能后先判断是否存在上溢错误,若是则通过读DR寄存器清除上溢。否则会出现因上溢导致的DMA死锁 阅读全文
posted @ 2017-03-11 11:10 杰瑞鼠 阅读(339) 评论(0) 推荐(0) 编辑
STM32空闲中断
摘要:收发共存的思路没有经过验证!!! 空闲中断:既可以用来作为不定长接收数据帧的断帧判断/特别是DMA数据的接收,也可以用来指示中断发送的结束。 在需要发送的地方USART_ITConfig(UART5, USART_IT_IDLE, ENABLE); 在接收的中间USART_ITConfig(UART 阅读全文
posted @ 2017-03-09 13:18 杰瑞鼠 阅读(855) 评论(0) 推荐(0) 编辑
串口通讯中垃圾数据的处理
摘要:在双机串口通讯中,开关机(串口开闭)期间发送方有时候会发一些无效的垃圾数据,同时因为有的协议解析只有接收到一定数量才能解析。这就会出现一个现象:如果开头的数据是错误的,又没有及时丢弃,后面正确的数据接着位置存储,最终造成解析失败。现象就是有时候数据交互正确,有时候错误(冷启动第一次出现错误的几率较大 阅读全文
posted @ 2017-03-07 18:35 杰瑞鼠 阅读(905) 评论(0) 推荐(0) 编辑
关于通讯断帧策略
摘要:1 可以利用串口的空闲中断加收发中断: 1.1接收断帧判断:每接收一字节就使能空闲中断,进入空闲中断说明断帧了进行数据缓存,出中断时禁止空闲中断 1.2发送断帧判断:同样处理,不同的是空闲中断使能的位置在要发送内容的前面,这样就不用每发送一个字符就使能一次,出空闲中断同样要禁止该中断。 1.3如果在 阅读全文
posted @ 2017-02-24 10:28 杰瑞鼠 阅读(546) 评论(0) 推荐(0) 编辑
GPIO的翻转操作方法
摘要:STM32在进行IO翻转操作的时候可以使用以下方法:以PE.5为例 GPIO_WriteBit(GPIOE,GPIO_Pin_5,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_5))));GPIO_WriteBit(GPIOE, GPIO_ 阅读全文
posted @ 2017-01-22 16:32 杰瑞鼠 阅读(5771) 评论(0) 推荐(0) 编辑
RTC之初始化
摘要:RTC为了避免初始化一般有3中方法: 一给MCU的VBAT供电,利用MCU的后备寄存器保存已经设置过时间的标志值,RTC初始化时先查询寄存器值如果是已经设置过则不用初始化设置时间 二 当不给VBUAT供电(省电,比如利用外部始终芯片PCF8563/PCF2139)此时可以用两种方法: 2.1 可以利 阅读全文
posted @ 2017-01-09 09:09 杰瑞鼠 阅读(525) 评论(0) 推荐(0) 编辑
超时处理
摘要:一 函数中等待标志的超时处理:flag一般是来自中断或其它线程的异步标志。 while((!Flag__Uart4_Rcved)&&(--timeout > 0)) { ; }或者 do { flag=read_flag(); timeout_counter++; }while((flag==0)& 阅读全文
posted @ 2017-01-06 08:56 杰瑞鼠 阅读(140) 评论(0) 推荐(0) 编辑
编译时获得系统的日期和时间
摘要:嵌入式开发中的几个时间概念 __date__和__time__是C中内置的2个比较有用的宏,它可以返回程序编译的日期和时间。对版本控制时比较有用。本身是struct tm* 类型的,可以使用strftime()函数进行转换 printf("%s--%s",__TIME__,__DATE__); st 阅读全文
posted @ 2016-12-19 22:54 杰瑞鼠 阅读(2803) 评论(0) 推荐(0) 编辑
关于串口的字符串输出和二进制数据流输出
摘要:串口输出的类型主要分为单字节 字符串和二进制数据流,它们的控制输出函数各不相同。 Windows系统里面,每行结尾是“ <回车><换 行>”,即“\r\n” #define CR 0x0d // 回车13='\r'#define LF 0x0a // 换行newline =10='\n'#defin 阅读全文
posted @ 2016-12-16 09:27 杰瑞鼠 阅读(2493) 评论(0) 推荐(0) 编辑
STM32串口
摘要:状态寄存器USART_SR的复位值为0x00C0H:即 第七位发送寄存器空TXE=1和第六位发送完成TC=1寄存器为空, TC=1表明发送已完成.此时只要使能了发送空和发送完成中断就可进入中断ISR(所以如果手动发送或者开机状态为接收的要清除这TC标志(TXE不用因为不能通过写1清零))。因此建议的 阅读全文
posted @ 2016-12-13 13:28 杰瑞鼠 阅读(196) 评论(0) 推荐(0) 编辑
STM8 EEPROM:
摘要:stm8的EEPROM的搽除是写0,FLASH_PRO与FLASH_DATA写的秘钥顺序相反 EEPROM读写前要解锁的。这个很简单,在技术文档里讲得很清楚。我用一个宏定义来代表EEPROM单元。#define EEPROM_BASE_ADDR 0x4000 #define ADDRESS(i) ( 阅读全文
posted @ 2016-08-29 11:57 杰瑞鼠 阅读(411) 评论(0) 推荐(0) 编辑
强制转换的一个问题
摘要:问题:如果一个函数的形参是unsigned char *p,而实参变量是一个unsigned long data,那么你会怎么传递参数呢? 方法1 :先定义一个联合体变量 typedef union {unsigned char a[4]; unsigned long b}mylong mylong 阅读全文
posted @ 2016-07-29 09:35 杰瑞鼠 阅读(134) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示