
项目经验总结
文章平均质量分 67
Phenixyf
这个作者很懒,什么都没留下…
展开
-
新闯项目串口使用注意事项
1. 初始化串口时要定义好串口中断启动阈值和接收buffer字节长度: 2. 在串口触发事件函数OnComm中,根据实际的传输协议,激发自己的新事件,比如画图。 3. 数据buffer使用完后,必须作清零处理,否则会产生错误数据,引起异常。(特别注意) 另外需注意一些重复操作时,变量的定义,要统一定义,不要在每个if或for语句中重复定义:原创 2013-08-08 23:04:12 · 898 阅读 · 0 评论 -
单片机控制气压海拔模块BMP180之模块化编程(持续更新中)
这里将我写的STC12C5A60S2单片机控制气压海拔测量模块BMP180的程序共享一下,是为了让前辈给予斧正。更新:2015/05/05 08:30 完善了温度值的类型及其运算(没有进行实物验证)2014/04/17 10:22(也可以用官网封装好的函数BMP180_API :http://www.general-files.org/download/gs64624bfeh转载 2016-10-14 11:03:40 · 8128 阅读 · 0 评论 -
verilog入门经验(四) 经验总结
1. 最常用及基本的电路就是counter,完成任何电路设计都是基于counter 在某个位置信号的电平要转换,这个位置就是通过counter的值来确定; 几个信号要同步,同步的位置也是通过coutner的值来确定; 复杂电路实现一个功能,在什么时候做什么动作,可以根据counter的值来确定。 通过coutner计的各数值所代表的意思,去做对应的处理。原创 2016-09-29 15:14:09 · 1542 阅读 · 0 评论 -
i2c写操作收到nack后重发------24C02B/24C16N i2c写实例
24C02B/24C16N在写操作过程中,以8个字节为一组:一次最多只能写8个字节!!!继续写需要重新发送slave address和新的组地址,在重新发送前,要重新发i2c起始信号;每写完一组之后,需要等待1ms左右让eeporm完成内部写操作,然后才能开始下一次写操作。写过程如下:原创 2016-09-29 16:46:41 · 1726 阅读 · 0 评论 -
i2c 设计建议
1. 写操作过程中,从机给主机返回nack后,主机重新发送数据,重新发送过程中,是否需要重新发送一遍起始信号和slave address? 可参考http://blog.youkuaiyun.com/phenixyf/article/details/52703055,该项目中需要重新发送。原创 2016-09-29 16:56:50 · 674 阅读 · 0 评论 -
STM32通过I2C与BMP280通信
BMP280气压传感器(Digital Pressure sensor)测试流程图:项目中使用的是I2C通信,BMP280的作为slave的地址要确认好,它的地址根据硬件电路SDO接什么脚来决定:1.BMP280的测试启动流程(注意它的datasheet中的status寄存器):(1)读取BMP280的id,其值等于0x58。(2转载 2016-09-30 15:34:01 · 9100 阅读 · 2 评论 -
HelloCharts重新绘图时旧数据残留问题
分析HelloChart绘图语句,显示曲线的点坐标信息是放在mPointValue动态数组中,通过在其中添加PointValue对象(getAxisPoints函数),然后显示曲线,显示流程可查看流程图文件中hellocharts绘图解析流程。进debug发现,启动重新绘图后,发现mPointValue内的数据存在累加现象,并没有清零后重新转载新画的数据。所以在重画之前,需要对其手动清零mPo原创 2016-10-26 17:28:19 · 3694 阅读 · 0 评论 -
HMC5883L 转换方向角与简易校准方法
研究了一晚上稍微有点成果分享下HMC5883L使用i2c接口,接线很容易以Arduino Uno为例:SDA to A4 SCL to A5Vcc to 3.3VGND to GND基本原理很简单:方向角其实就是X轴和Y轴读数的反正切而校准其实就是要排除环境中的磁场对地磁场的干扰另外别忘了当地的磁偏角如下代码没有使用专门的传感器库上电转载 2016-11-14 14:03:59 · 18184 阅读 · 7 评论 -
HMC5883L 磁力计校准
这里针对 HMC5883L 磁力计 的校准,做一个简单讲解。欢迎交流,新浪长沙@WalkAnt。 (2016-10-15更新,最近WalkAnt私下没事,编了一个磁力计校准的小软件AntMag,可以帮助大家非常好的校准磁力计。网址:http://blog.sina.com.cn/s/blog_402c071e0102wnm4.html) 先看看这篇转载 2016-11-14 14:05:14 · 5361 阅读 · 0 评论 -
不知长度的字符串,根据多字符组合的结束标志,区分多次传输
用UART接收字符串,字符串长度不确定。但每次传输完毕会有固定的结束标志:可以是回车换行(\r\n)、字母组合(trmok)。如何根据结束标志,准确取出每次传输的字符串,并且不会将两次的传输弄混,下面是一个例子:void interruptUART() interrupt 4 using 3{ if(RI) { RI = 0; temp = SBUF; if(tem原创 2016-12-29 17:23:43 · 875 阅读 · 0 评论 -
电平转换电路--Power 测试平台搭建总结
在搭建power芯片测试平台时,有两路控制输入,EN和mode。其中EN信号电平为-1V~0V; mode信号电平为0V~5V。用F340产生的时序信号电平为0V~3.3V。 需要用到电平转换。1. 0~3.3V转0~5V的转换,使用下面的电路即可,电路来源参考:http://www.elecfans.com/dianlutu/app/20171213603115.html3.3V <...原创 2018-04-18 09:46:21 · 1070 阅读 · 0 评论 -
PCR BT APP项目遇到问题汇总
1. 添加hellocharts库后,新添加一个line chart到chart page页面。 问题:点击登录按钮后,程序自动关闭,控制台报出...setInteractive(boolean)' on a null object reference错误。 分析:从报错信息看,新添加的initLineChart()函数中,是在执行到lineChart.setInter原创 2016-09-13 17:29:24 · 327 阅读 · 0 评论 -
无法启动此程序,因为计算机中丢失MSVCP100D.dll。尝试重新安装该程序以解决此问题。
自己写了个DEMO,收到提示:“无法启动此程序,因为计算机中丢失MSVCP100D.dll。尝试重新安装该程序以解决此问题。”在项目里面找属性:Property->C/C++->Code Generation->Runtime Library把多线程调试DLL(/MDd)改为多线程调试 (/MTd)就好了。总结:MSVCP100D.dll,这转载 2016-04-22 10:30:10 · 2906 阅读 · 0 评论 -
HID读下位数据丢失问题
PCR项目中,上位机采用异步原创 2014-10-11 16:50:22 · 3895 阅读 · 0 评论 -
gcvt函数使用注意事项
gcvt(将浮点型数转换为字符串,取四舍五入)相关函数 ecvt,fcvt,sprintf表头文件 #include定义函数 char *gcvt(double number,size_t ndigits,char *buf);函 数说明 gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地原创 2013-09-20 18:24:10 · 15225 阅读 · 1 评论 -
将十六进制转成十进制字符串显示
1.将十六进制字符(unsigned char 一个字节),通过CString类的Format函数,将char转成十六进制字符串2.再将十六进制字符串通过 “ ChangeNum ” 函数转成十进制数; 3.最后通过gcvt函数再将十进制数转成字符串//ADC Value Display CString ADCVal,Temp; //接收数据转换成十六进制buffer ch原创 2013-10-14 09:59:19 · 7888 阅读 · 1 评论 -
visual c 6.0 编写串口程序release版本在非vc电脑上无法运行的解决方法
近日给编写了一个串口与单片机的程序,却发现生成的release版本exe文件在没有安装vc的电脑上无法正常运行,点击没有任何反应。然后,用vc自带的库连接检查工具depends.exe检查,没有任何进展。在网上查阅有人认为是因为程序引用了ActiveX插件,要进行插件注册,于是在一台没有安装vc的电脑上的电脑->运行 中输入RegSvr32 H:\MSCOMM32.OC转载 2013-07-12 15:01:40 · 2053 阅读 · 0 评论 -
XinchuangProject HID上位机开发总结
1. 工程建立,文件添加,工程设置1.1 文件添加:在工程目录下添加INC、LIB文件夹(注意这两个文件夹得位置,必须与工程同目录):在目录下添加ini.c、ini.h文件:1.2 工程设置:1. 代码编写:2.1 需添加的头文件和宏:重点注意添加dbt.h文件需更改wi原创 2014-01-05 21:39:49 · 1464 阅读 · 1 评论 -
VC6 转V2010问题总结
使用vs2008进行编译的, 打开dsp的时候转换工程文件,都没有问题.Debug下编译, 会碰到的问题:1. fatal error LNK1107: 文件无效或损坏: 无法在 0x2E0 处读取解决方法:项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是; 如果是编译.Bundles\Format7z的工程里,在Asm/7zCrcOpt.asm转载 2014-05-12 17:53:19 · 1060 阅读 · 0 评论 -
使用Tab控件时子主窗口发送多个消息
1. 在Resource.h文件中定义消息#define WM_OpenComm_event WM_USER + 101#define WM_CommTx_event WM_USER + 102注意,当新增加控件后,这些在Resouce.h中添加的语句会被清除,需重新再添加一次。 2. 在父窗口的.h文件,类定义中添加对应的消息处理函数,作为类的成员函数: afx_ms原创 2013-11-21 23:16:33 · 2199 阅读 · 0 评论 -
Tab控件子主对话框发送消息
子对话框向主对话框发送消息的详细操作,参考下面链接文章:http://blog.youkuaiyun.com/phenixyf/article/details/11383509 当子对话框的属性->样式 选择的是弹出时,可以使用上面的方法完成子对话框到主对话框的消息发送。但当使用Tab控件后,各子对话框的属性->样式均必须被设置成下层(child),上面的方法就要做适当的改动:在最原创 2013-11-21 22:26:05 · 3068 阅读 · 1 评论 -
HID数据错位问题
在这个项目中,定义每次传输HID下位机发送的数据为64byte,但是在上位机操作中,发送和接收的数据都是65byte,第一个byte为无用的0x00。这点需要注意,所以在定义发送、接收buffer时,要把空间留足。 用下载到的HID上位机实例程序发现,在传输中有时一次会读到130byte,所以尽量把buffer留足: 注意:以上只是经验总结,可能不是真正原因。原创 2015-04-12 22:54:51 · 1140 阅读 · 0 评论 -
采用后台绘图方法绘制完成后要释放内存
采用后台绘图方法绘图,在绘制完成后一定要释放后台内存,否则在将后台那些变量作为全局变量,在多个函数中使用时会报错。 如在PCR项目中,4个PCR传输图像数据,每次只接收1个PCR1行的数据,接收后就将数据在后台做绘制处理,4个PCR数据全部接收完毕后(后台位图拼接画完),将整个后台位图一起显示出来。 这时后台变量必须设为全局变量:启动开始绘制按钮后,将后台和前台DC原创 2015-04-15 00:26:12 · 1796 阅读 · 0 评论 -
画图卡顿不良
在4PCR程序阶段,出现画图卡顿现象,更改画图方法。之前是按行逐行画,然后4个PCR循环完成整个图。现在考虑在后台完成4个PCR的整个图绘制,后台绘制方法和之前一样,画好后再在OnPaint中在前台画出来。在用新画法的过程中,需注意:1. 后台DC、BMP与前台DC、BMP关联的操作,只能执行一次,如果放到控件函数或某个循环中,会报错。 本工程放到Initial函数中:B原创 2015-04-14 18:29:55 · 1636 阅读 · 0 评论 -
车窗控制板LIN协议
车窗控制板项目,对LIN协议的理解:一个LIN局部网的结构包括三个部分:主机、节点、从机,各自的作用如下:主机发送报文头(header);如0x07车窗控制板作为一个节点,接收并判断报文头,如果接收到与自己节点对应的报文头,则发送对应的报文响应(response); 如0x47 0x1d 0xc0 0xc0 0x00 0xff 0xff 0xff车窗电机作为一个从机,根据LIN总线上的报文做判断,...原创 2018-07-11 16:24:46 · 3329 阅读 · 1 评论