单片机编程
a136498491
这个作者很懒,什么都没留下…
展开
-
Qt使用QSerialPort等待数据时无法发送和接收的问题
windows下,Qt 5.14.2使用QSerialPort和STM32的虚拟串口通信。使用bytesAvailable + QThread::msleep等待数据,死活等不到数据。后来加了waitForReadyRead才可以。最终使用waitForReadyRead +bytesAvailable来等待。莫名其妙,不知道什么原因。...原创 2020-08-04 15:04:56 · 2033 阅读 · 2 评论 -
[改进]利用ollydug反汇编修改JlinkARM.dll,解决The connected J-Link is defective提示框和不能仿真的问题
本文作者贪图便宜,手头紧张,又不得不学习使用,所以购买了淘宝上的超便宜的Jlink-OB。更新了Jlink驱动后,悲催的发现提示“The connected J-Link is defective。。。”,总之就是“你是盗版,不给你用”。网上搜索,已有前人通过修改DLL文件避开提示框和停止仿真。链接:https://blog.csdn.net/yekui6254/article/details/85272767本文作者就是跟随他们的脚步后,发现最新版的6.64a,UltraEdit找Jlin原创 2020-07-12 17:21:06 · 1252 阅读 · 0 评论 -
关于STM32 USB CDC虚拟串口在PC端有时能打开有时打不开的问题
MCU:STM32F401RC代码库:使用STM32CubeMX V4.27.0 F4系列1.21.0生成1、很多人说的heap要加大,我确实加大了。这一步可以让电脑上的“感叹号”去掉。2、我的heap是0x400大小,有时出现串口工具打不开(sscom),但是另一个工具(山外)却一直能打开。每块板子出厂前都要通过这个USB写参数,所以USB必须100%管用,要解决这个问题。...原创 2018-12-27 21:57:03 · 6285 阅读 · 7 评论 -
基于STM32的CRC和IAR为固件添加CRC校验
两个方面:1、IAR可以为固件添加CRC校验;2、STM32内置硬件CRC校验; 一、IAR配置如下图,其余问题可以参考http://bbs.21ic.com/icview-988212-1-1.html二、STM32中使用硬件CRC32计算即可。(我的是STM32F072) 三、如果提示__checksum找不到,需要在Linker-->Extra Opti...原创 2018-08-07 20:16:17 · 5226 阅读 · 0 评论 -
IAR开发STM32 BOOT + APP 的便捷方式
最近要开发BOOT+APP的方式,进行固件升级。使用IAR,基于STM32F072.之前调试烧写都是分开来,最后合并一个文件烧写。最近发现IAR可以在调试的时候,直接调试BOOT或者APP,很是便捷。具体请参考IAR官方NOTE:https://www.iar.com/support/tech-notes/general/creating-a-bootloader-for-cort...原创 2018-08-01 12:57:38 · 2620 阅读 · 0 评论 -
关于Cortex M0 核不支持非对齐内存访问的问题
最近把STC15W4K上的程序转移到NV32F100上遇到了非对齐访问的问题。解决办法是:编译器(Keil或IAR)会帮你解决。但是你得告诉他。用 __packed 修饰定义的结构体,就是告诉它,这个可能是非对齐访问,你帮我解决。(PS:我用的IAR,没试过Keil)...原创 2018-07-31 12:42:47 · 2126 阅读 · 0 评论 -
单片机+GPRS模块 AT指令解析简单思路
AT指令解析貌似没啥快捷的方式。我最一开始用M6311,使用逐个字符比较,花比较大的功夫,得到很有限的AT指令结果。最近接到任务,让我把原来工程师的单流工作模式,改成多流模式,又重新思考了一下解析方式。注:单流说的是他直接用透传方式,省事。后来需求变化,要改成同时支持多个TCP连接、和IP应用的工作方式。模组换成了SIM800C。模组里面本来已经封装好了协议栈,我们用AT指令只是做一些控制,接收一...原创 2018-03-27 13:47:51 · 13201 阅读 · 4 评论 -
Keil MDK sscanf 函数不支持的格式
结论:MDK不支持sscanf 函数中 格式说明符 的 A-Z这种写法,你需要把所有的情况列举出来才行。例子:sscanf("1,CHINA","%d,%[A-Z]",xx,xxx);//这句中的格式%[A-Z]在PC上是可以正常运行的。但是在MDK中则不能正确运行。因为MDk不支持A-Z这种范围写法,你需要改成%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]这种形式。另外,IAR可以支...原创 2018-03-21 17:49:21 · 3068 阅读 · 2 评论 -
BS8112A-3 IIC通信的“坑“
项目用触摸芯片,选了一圈用了BS8112A-3,IIC接口,由于单片机IIC不够,只好用开漏输出的引脚模拟了。遇到的坑是,IIC的ACK明明是谁接收谁给ACK,结果这个东西,死活不给ACK,后来没办法,作为Master的我只好屈服,给了他ACK,结果就好了!妈的,我就是要吐槽!原创 2018-01-17 17:25:37 · 3629 阅读 · 5 评论 -
IAR STM32 脉冲捕获 因为使用半主机的打印,出现异常数据
如题,使用STM32进行脉冲捕获,然后通过IAR的Semihosted打印出信息,会发现捕获值在打印时出现异常。一番折腾,发现我的代码没有问题。去掉打印函数就好了。因此猜测半主机打印会把全局中断关掉。所以以后要注意了!不去查Semihosted实现细节了,先睡觉了。原创 2018-01-08 02:13:53 · 373 阅读 · 0 评论 -
IAR下STM32F103 Boot + APP的编程
工具:IARMCU:STM32F103功能:实现Boot + APP概述:原来程序需要做在线升级,我的方案是找一片区域存放新的程序(新APP),运行中可以进行升级(旧APP),接收完毕后重新启动,由Boot进行升级,升级完成后,跳转到APP区域执行。详细过程:原创 2017-07-05 11:23:58 · 4429 阅读 · 1 评论 -
IAR踩坑:优化与volatile
用STM32 CubeMX生成HAL库代码,产生的IAR默认是优化开到最高从别处复制的代码,调试了很长时间,我都怀疑人生了,最后一步一步发现一个延时函数,不起到延时作用。意识到IAR可能开了优化,于是对变量加了volatile修饰,代码通过。但是为了以后不踩坑,把优化改成了none。原创 2017-08-30 18:49:24 · 3474 阅读 · 1 评论 -
TM1620中显存地址是偶数
驱动代码是网上搜索得到:http://blog.csdn.net/chuangwu2009/article/details/20994541在精简代码时踩了一个坑,即显存地址都是偶数,我当成了连续的,耽误了一些时间。转载 2017-07-07 13:18:47 · 678 阅读 · 0 评论