官方网址: http://www.stcisp.com/q_and_a_stcisp.html 个人小结 芯片:STC12C5A60S2 封装:LQFP-48 晶振大小:SD22.1184M 最小系统原理图如下(不包含电源部分): 烧录软件版本:stc-isp-15xx-v6.79B 出现的现象 一直处于“正在检测目标单片机……”的状态. 一段时间没找到原因. 看了STC官网上的解决办法汇总,还没确实解决.…
在进行Qt编程的时候,有时候会将类的定义和实现都写在源文件中,如果同时在该类中使用信号/槽,那么可能就会遇到 undefined reference to vtable for "xxx::xxx"的链接错误,这是因为qmake默认不会处理cpp文件中的 Q_OBJECT导致链 接的时候缺少相应的 moc_xxx.h文件,此时,可以先用moc处理该cpp文件:moc xxx.cpp,然后讲生成的moc_xxx.h文件 包含到cpp文件中,问题就可以解决…
使用网上的qextserialport-1.2类,自行开发多线程串口通信.开发的过程中,出现两个问题:   问题1:我用信号槽跨线程调用串口类MyCom 发送和接收数据,中间运行的时候,会内存错误,Qt error LNK2001: unresolved external symbol,导致程序崩溃.   解决方法:原因是我自己写了个串口类MyCom,继承了qextserialport,可能写的不是太好,信号槽传递参数,出问题了.后来直接把Win_qextserialport  *seriPor…
STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了.很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了” 更有阴谋论者提出让人啼笑皆非的解释——STM32的RTC晶振不起振是ST与晶振厂商串通后故意搞出来的,目的是提高某晶振厂商高端晶振的销量. 最近做的几块板子也用到了STM32的RTC,前后两版一共做了大概6片,幸运的是并未遇到晶振不起振的现象.而我采用的是3毛钱一个的普通晶振,并未选用传说中低负载高精度晶振…
背景:两片STM32通过串口通信,为了减小CPU负担,采用DMA进行通信,发送端为STM32F103C8T6,接收端为STM32F407VET6.在调试的过程中发现,一直出现数据错位的问题,接收端尝试了串口空闲中断和串口DMA传输完成中断,错位问题依旧,其实我之前遇到过这个问题,那次发送端没有使用DMA,而是直接用串口发送,接收端采用DMA接收完成中断,检测到错位后,延时重置DMA,直到DMA接收同步后,不再重置,此后DMA便会保持同步,不会错位.但是这次不知道为什么采用上次的方法没有解决,因此…
STC单片机串口输出ADXL335角度值: //***************************************************** //名称:单片机串口输出ADXL335角度值 //使用单片机:stc12c5a60s2 //供电:电压5v //晶振:11.0592m //X轴->(ADC0)P1.0 //Y轴->(ADC1)P1.1 //Z轴->(ADC1)P1.2 //用pc串口助手显示时,选择字符显示 //参考宏晶网址例程 //****************…
STC89C51.52内部都自带有2K字节的EEPROM,54.55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点. 知识点:ISP与IAP介绍     ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程.比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这…
STC单片机简介 STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等.还支持ISP下载,不用编程器,只要一个MAX232和一些廉价的元件就能写程序,可擦写10万次.因此是一款很好用的单片机. stc单片机的优缺点 stc单片机优点: 1.抗干扰能力强: 2.保密性能强悍,很难被破解: 3.单片机时钟有防外部电磁辐射功能: stc单片机缺点: 1.功耗较高,5V供电: 2.8位…
操作系统:Ubuntu16.04 TLS 单片机:STC的STC89C52RC系列及 Atmel的AT89S52... 所需工具: 1.编辑器- Vim(不钟情于IDE,个人喜好,高手勿喷) 2.编译器- SDCC(sudo apt-get install sdcc安装) 3.转换程序 - hex2bin(http://sourceforge.net/projects/hex2bin/files/?source=navbar)源码安装 4.烧录程序 - gSTCISP(http://source…
模数转换器原理 数模转换器( analog to digitI converter,ADC),简称为A/D,ADC是链接模拟世界和数字世界的桥梁.它用于将连续的模拟信号转换为数字形式离散信号.典型的,ADC将模拟信号转换为与电压值成比例表示的数字离散信号,对于不同厂商所提供的ADC,其输出的数字信号可能使用不同的编码格式 注:有一些模叔数字转换器并非纯的电子设备,如旋转编码器,也可看作是模拟数字转换器 ADC的一些参数 分辨率.响应类型.误差和采样率 1)分辨率 在模拟数字转换器中,分辨率是指对…
STC官方给出的建议: /***************************************************************Author:Liming*** * @brief 读取参数 * @param None * @retval None ****************************************************************0x49E7FC7B*****/ void ReadParam(void) { uint16_t i…
STC单片机4*4按键控制步进电机旋转 28BYJ-48型步进电机说明 四相永磁式的含义 28BYJ-48工作原理 让电机转起来 最简单的电机转动程序 电机转速缓慢的原因分析 便于控制转过圈数的改进程序 利用中断编写实用性程序 用4*4矩阵按键控制28BYJ-48步进电机 28BYJ-48型步进电机说明 步进电机分为反应式.永磁式和混合式三种 我们在这里只讲解28BYJ-48型步进电机的具体含义: 28–步进电机最大有效外径为28毫米 B–表示是步进电机 Y–表示是永磁式 J–表示是减速型 48…
51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于:   分类: 深入C语言(20) 作者同类文章X #include "reg52.h" #include "intrins.h" #include "math.h" #include "stdio.h" sbit BT_SND =P1^; sbit BT_REC =P1…
问题如下: 按照正常步骤使用keil5给龙邱的stm32下载程序,SWD下载方式提示no cortex-m sw device found,JTAG方式提示no cortex-m device found in jtag chain 原因: 龙邱STM32单片机的JTAG接口排列方式不是标准的JTAG布线方式 解决方法: 按照JTAG或者SWD的接线方式自己接线 10脚的ITAG接口,第3.4脚(TRST对应stm32的PB4).第5脚(TDI对应stm32的PA15).第6脚(TDO\SWO对…
silverlight 是一个很不错的开发平台,我们可以设计出很绚丽的界面,用户可以拥有很好的体验,但是就目前来说,进行本地串口的直接调用时不行的,因为安全的原因,有没有相对简单的调用方式呢? 答案是有的, 大家应该还记得在B/S 架构中我们使用的activex 插件吧,这是可以进行本地调用的一种方式,但是有一定的局限性,就是只能在IE浏览器中,也就是使用windows平台,今天我的解决方法也是使用activex插件,对于跨平台当然是目前比较难办的. 具体的思路如下: 在上面的一般关于silve…
在使用WPS Office过程中,遇见宏不可用,在启用宏的过程中提示获取VBA插件 解决方法: 1.下载VBA插件,下载地址:https://pan.baidu.com/s/1LqBmXw37U0km67LTIenfBA,提取码:bfnf,安装好插件 2.打开有宏的文档,进入开发工具界面,点击宏,提示宏被禁止 3.点击宏安全性,下图选项中选择低,点击确定 4.关闭WPS,重新打开带宏的文档,文档就可以正常使用了…
1.情景描述: 最近在做一个项目,X86的上位机通过串口控制MCU,使用串口中断接收上位机数据时,MCU在上电的情况下烧录程序,可以正常接收上位机的数据,在断电重启后,一直进入不了中断回调函数,上电的情况是X86上电,MCU也同时上电. 2.原因分析: 造成这个的原因是因为硬件上电的时候,因为X86跟MCU是同时上电的,上电后会把串口的电平拉高,这个高电平触发了MCU的串口中断,导致MCU的串口中断误以为接收到了一个数据,例如 HAL_UART_Receive_IT(&huart1, (uint…
标题: 对于使用progisp软件进行ISP编程时无法进入编程模式的解决方法 作者: 梦幻之心星 347369787@QQ.com 标签: [progisp, 软件] 目录: 软件 日期: 2019-4-20 目录 对于使用progisp软件进行ISP编程时无法进入编程模式的解决方法 前提说明 Win10 解决方法 Win10 "禁用强制驱动程序签名" Win10 手动安装驱动. Win7解决方法 Win7 "禁用强制驱动程序签名" Win7 手动安装驱动 说明 对…
由于客户在请人设计开发一设备,但是设备用户处总停电,造成设备及其周边耗材损耗严重,因此请我司在现有STC为主要芯片的基础上做掉电瞬间EEPROM里的20个参数保存,上电后通过读取EEPROM中的参数回到掉电的状态,基于此,荣致电子科技做了大量的工作,并选用了很多种方案: 1. 通过1法拉大电容做掉电临时备份电池. 2. 通过备份电池或者DS1302里的31个字节ram+电池方案. 3. 通过MAX813L检测掉电,然后通过普通STC10某个引脚读取MAX813L的第五脚高低电平状态. 4. 购买…
volatile是一个类型修饰符(type specifier).volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.比如如下程序: 1 2 3 4 XBYTE[2]=0x55; XBYTE[2]=0x56; XBYTE[2]=0x57; XBYTE[2]=0x58; 对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器却会对上述四条语句进行优化,认为只有XBYTE[2]=0x58(…
>_<!概述: 这是在上一个的基础上通过按键发送4种不同命令来控制接收端的LED灯亮的改进版(上一个:http://www.cnblogs.com/zjutlitao/p/3840013.html),这里俺把按键发命令给去掉,然后加入一个串口通信的功能,PC通过串口给发送端发送命令,然后发送端通过无线将命令发给接收端来实现控制,这里接收端和上一个例程中的一样,只是在发送端的代码里去除了按键控制,变成了串口控制. >_<!发送端电路: >_<!接收电路图: >_&l…
比如我们做了个单片机,在win里面用串口调试助手接收和下发数据,那么在ubuntu里用ros怎么实现?换个说法,怎么实现上位机和下位机的通讯? 首先,用python自带的库就可以实现这个功能. 安装pyserial,然后运行以下代码: import serial serial = serial.Serial('/dev/ttyUSB0',115200,timeout=2) while(1): data = serial.read(1) if serial.isOpen(): print (dat…
很早的时候调试串口通讯遇到单片机和模块电压不匹配,信号无法传输,所以整理后来遇到的转换电路.1.最简单的用转换电平IC,可以去淘宝上搜索,有四路的有两路的,比如这个双向电平转换模块 2.根据接触的开发板等电路多了,就留意整理下,待大家参考使用.电路1:画圈部分,串口发送 接收端为5V电平 电路2:发送 接收 不同电平 根据三极管导通截至分析 电路3:NMOS管 GS端 高低电平分析 导通 截至 电路4:上拉电阻+肖特基二极管…
本节教你如何学习单片机,如何选择合适的开发板和开发工具. 现在我们知道单片机是要学习的,那么怎么去学习单片机?在上一课我们说不要使用老一套的方法学习,实际上是指的两个问题. 第一:选择什么开发板: 第二:使用什么开发工具: 我们学习单片机的目的是干嘛?目的是为后续嵌入式Linux学习服务.  在这条学习线路上: 单片机->bootloader->Linux系统/驱动->APP(QT) 可以使用同一套开发板. 我们选择开发板的原则是:资料丰富. 开发板首推三星 (SAMSUNG)系列的,资…
在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不保证一定是当前所发数据的起始部分.因此串口通信双方在通信前应制定好通信协议,规定好数据的起始和结束标志,串口当读到完整的起始和结束标志之后,才认定读完一条完整的数据. 本例中用串口定时发送当前时间,用"#"表示数据的结尾,定时时间为0毫秒,即能发多快就发多快. //发送 <span…
摘要:     介绍了在C 语言环境下,在LCD 液晶显示屏上实现多级嵌套菜单的一种简便方法,提出了一个结构紧凑.实用的程序模型. 关键词: 液晶显示屏; 多级菜单; 单片机; C 语言; LCD 中图分类号:TP311. 1 文献标识码:B      收稿日期:2005 - 11 - 21 0 引言    由于C 语言的结构性和模块化,采用C 语言编写的程序容易阅读和维护,还有很好的可移植性.本文介绍一种用C 语言实现的LCD 多级菜单的方法,该方法已成功应用在煤矿安全监测设备上. 1 硬件环…
在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不保证一定是当前所发数据的起始部分.因此串口通信双方在通信前应制定好通信协议,规定好数据的起始和结束标志,串口当读到完整的起始和结束标志之后,才认定读完一条完整的数据. 本例中用串口定时发送当前时间,用"#"表示数据的结尾,定时时间为0毫秒,即能发多快就发多快. //发送 <span …
例如: #include <stdio.h> #include <sys/ptrace.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <linux/user.h> /* For constants ORIG_EAX etc */ int main() { pid_t child; long orig_eax; child = f…
RS-232连接线制作方法 材料及工具 一根双绞线(8芯).一个标准RJ45头.一个DB9孔型插头.一把RJ45专用工具.一个电烙铁及若干焊锡. 引脚定义 按以下管脚定义制作RJ45端头:I表示网络视频服务器输入,O表示网络视频服务器输出. 管脚序号 名称 I/O特性 说明 1 DCD I 载波有效 2 RxD I 接收数据 3 TxD O 发送数据 4 CTS I 清除数据 5 RTS O 请求发送 6 DTR O 终端设备准备好 7 GND 信号地 8 空 — — 根据管脚连线的对应关系制作…
接上边的文章. 在javascript暴露操作activex 串口接收之后,就是silverlight端进行串口数据的显示,我们的显示方式比较简单,只是为了演示,我们每隔1秒进行数据的获取并显示, 为了进行测试我们使用的是虚拟串口,虚拟串口的软件比较多,我使用的是VSPD虚拟串口的破解版(大家都爱这样用),这个软件的使用是比较简单的.我的虚拟串口如图 我测试的时候使用的是COM3 与COM4 这是成对出现的,主要是方便调试,一个发送,一个接受. 我了进行发送,我写了一个比较简单的发送端,使用C#…