实际开发经验
文章平均质量分 72
城南花已开..
这个作者很懒,什么都没留下…
展开
-
关于RS485的DMA发送,以及EN使能脚的自动切换
ST官方都有APPNOTE指导的(对于UART没有RS485功能的单片机型号而言):1、启动DMA前,先关闭UART发送完成中断,并清除发送完成中断标志;2、在DMA传输完成中断函数中,开启UART发送完成中断;3、在UART发送完成中断函数中,切换RS485为接收态;DMA中断时,只表示需要传送的所有数据字节全部传送到串口的发送数据寄存器中了。此时串口实际上还有2个字节并未发送完成,数据寄存器和移位寄存器中的2个字节还需要发送,并不能关闭串口发送。同理,如果是485切换方向,必须要等到.原创 2021-03-09 21:00:46 · 5232 阅读 · 1 评论 -
PID调节经验
Kp: 比例系数 ----- 比例带(比例度)P:输入偏差信号变化的相对值与输出信号变化的相对值之比的百分数表示 (比例系数的倒数)T:采样时间Ti: 积分时间Td: 微分时间温度T: P=20~60%,Ti=180~600s,Td=3-180s压力P: P=30~70%,Ti=24~180s,液位L: P=20~80%,Ti=60~300s,流量L: P=40~100%,Ti=6~60s。(1)一般来说,在整定中,观察到曲线震荡很频繁,需把比例带增大以减少震荡;...转载 2020-10-21 22:30:21 · 1419 阅读 · 0 评论 -
485通讯关于匹配电阻的选择
A: 我们公司的做法是:在485的任何一个节点上,对 A上拉;对B下拉,具体接线就是:(+5V---R1---A---R2---B---R3---GND),其中R1:3.3K,R2:180欧姆, R3:3.3K,取消原来的120欧电阻,这样在总线空闲的时候就保证A比B高出大约200mV的电压,也就是说能保证总线上的数据状态在空闲的时候是稳定的1。这可是我们公司几年的现场经验得来的,效果很好,保证比原来那种方式好多了.B: 确有可取之处,但是请问: 在485的任何一个节点上,对A上拉,对B下拉,...原创 2020-08-03 21:51:11 · 7943 阅读 · 0 评论 -
CAN通讯故障分析
一、现象CAN监控器上出现错误帧。二、分析过程1、检查匹配电阻。两端均为120R电阻,全部断电后万用表测量为60R。(60R为最佳匹配电阻)2、测试发现单独接发送端,将接收端断开,问题消失,锁定问题为接收端问题。3、经过核查得知,发送端为500K波特率,接收端为250K波特率,导致问题出现。三、总结1、匹配电阻需两端120R。2、总线上只要有一个节点波特率不一致,将导致总线数据传输异常。此次为监控端、发送端为500K,接收端为250K。四、知识扩充1...原创 2020-08-03 21:47:23 · 8850 阅读 · 0 评论 -
TPC817隔离光耦使用小结
一、参数详情FEATURES● Current transfer ratio(CTR: MIN.80% at I F =5mA, V CE =5V)● High isolation voltage between input and output(Viso=5000V rms)● Creepage distance>7.62mm● UL Recognized File # E478892● Compliant to RoHS directive 2011/65/EU and in accord原创 2020-07-31 22:23:00 · 7831 阅读 · 2 评论 -
在emwin中,调用GUI_Delay()函数,程序卡死,黑屏
没有OS_TimeMS+1可以在systick里或者定时器里定时+1原创 2020-06-03 20:59:23 · 2092 阅读 · 1 评论 -
窗口看门狗的作用是什么?窗口看门狗复位分析
一,窗口看门狗介绍 独立看门狗的喂狗范围 0-X(X由预分频器和重装载值决定,最大值为0xFFF) 独立看门狗相关介绍:传送门:独立看门狗 相比于独立看门狗,窗口看门狗限定了喂狗时间段(由喂狗上限和喂狗下限值限定的喂狗范围) 所以形象的称作窗口看门狗 二,为什么需要窗口看门狗 独立看门狗:在0-重载值之间任意时间都可以喂狗 如果程序跑飞后又跑回正常 ...原创 2019-11-28 13:25:33 · 5857 阅读 · 2 评论 -
解决IAR不能设置断点
一、本人遇到的问题将所有的断点全部删除,再Debug,看还会不会有提示。 再者,注意把工程选项里Linker->Output|Format中的Debug information for C-SPY勾上。生成HEX文件时会将此选项取消,仿真时需要重新勾选。二、常见解决办法1.Rebuild All重新编译A.Project -> Clean:把前面编译后的文件删除;...原创 2019-08-02 08:57:03 · 4161 阅读 · 0 评论 -
STM32 DMA传输出错的防错机制
一、DMA 中断对于每个 DMA 数据流,可在发生以下事件时产生中断:● 达到半传输(每次传输都会触发,属于正常触发)● 传输完成● 传输错误● FIFO 错误(上溢、下溢或 FIFO 级别错误)● 直接模式错误可以使用单独的中断使能位以实现灵活性,如 表 43 所示。上诉为F4系列,F1系列中断只有三个,所以只需处理三个即可。见下图:二、常规操作我们正...原创 2019-06-26 20:45:59 · 10941 阅读 · 0 评论 -
波特率的解析及转换为字节传输速率
波特率115200 = 115200 (位/秒)以最普通的串口(起始位+8位数据+停止位)为例:除以 10,得到的是每秒字节数:波特率115200 = 115200 (位/秒) = 11520 (字节/秒)再除以 1024,就是每秒 KB 数:波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节...原创 2019-06-05 09:53:05 · 10548 阅读 · 0 评论 -
如何判断CAN总线空闲以及帧间隙,计算传输速率
一、如何判断总线忙还是空闲呢进入 正常模式之前,bxCAN 必须始终在 CAN 总线上实现 同步。为了进行同步,bxCAN 将等待 CAN 总线空闲(即,已监测到CANRX 上的 11 个隐性位)。判断总线状态可以监测总线电压,简单来说CAN_H和CAN_L之间的差分电压大的(一般在2V左右)就是显性状态,差分电压小的(理论上是0V)就是隐性,当然容错CAN要复杂很多,就不是这样的。当你一...原创 2019-06-05 10:27:20 · 6673 阅读 · 4 评论 -
单片机欠压保护、欠压复位的用法及作用
一. 前言使用编程环境 :KEIL mdk4单片机 : NRF24LE1 二. 分析查询各开发芯片的数据手册,一般在电源管理或者复位设置章节中。以下NRF24LE1为例:Power supply supervisor(电源监控):电源主管在开机时对系统进行初始化,对即将发生的情况提供预警当电源电压过低而不能安全运行时,系统处于复位状态。电源管理框图如下: ...原创 2018-12-28 11:06:40 · 7399 阅读 · 0 评论 -
Keil MDK4中的Data,Xdata,Code 及 Keil MDK5中的Code, RO-data , RW-data, ZI-data
一 、基础知识字节8位半字16位字 32位二、Keil MDK4中的Data,Xdata,Codedata 内部RAM xdata 外部RAM code Flash-程序的大小 例如:51单片机256kb RAM 分为 128kb data 以及 128kb xdata。存储类型与存储区关系(扩展): ...原创 2018-12-13 19:56:31 · 2601 阅读 · 0 评论 -
时钟芯片DS1302异常
异常现象:DS1302时间不走时,秒位是一个大于60的错误数字。分析原因:DS1302受到干扰,软件仿真发现DS1302的秒寄存器最高位被置为1(为时钟停止位)。解决方法:软件中增加判断机制,当读出的时间大于60秒。就立即重新设置时间,这样发生故障时,最多相差1秒就可以纠正回来。 if(sysrealtime.tm_sec > 60) { settime[0]= I...原创 2018-11-15 20:37:44 · 6507 阅读 · 1 评论