stm32的程序用MDK软件仿真时,由于系统时钟初始化函数里有个等待系统时钟准备好的循环,所以过不去. 设置方式如下:这么设置之后仿真时就可以直接进入main函数了.…
软件MDK5 stm32的pack     打开MDK,添加工程 一.首先找到Project的Options选项,里面的Debug选为Use Simulator,也就是选择软件仿真. 然后再Logic Analyzer的Setup选项里添加你要观察分析的IO,如PORTA.0.开始仿真后会看到逻辑分析窗口出现波形,调整Zoom的In或者Out就可以看到了 ①点开debug…
一直不知道MDK该怎么仿真调试程序,之前试了好几次都没有成功.因为有个程序一直不知道里面的变量对应着外部怎么的模式,今天想起可以用仿真调试的方法查看当外部设置某种模式的时候, 内部变量的变化,这样想来,仿真调试真是太方便了,而且很实用,估计开发者当时开发这个功能的时候,估计就是出于这个目的吧,哈哈. 其实仿真并不难,就是有一点老是迷惑人,查了很多论坛,很多人都是因为这个问题不知道该怎么调试,就是进不去主函数,老是在systemint 里面徘徊,估计有情况, 其实如果这个问题解决了,也就那么回事.…
设置 Dialog.DLL 分别为:DARMSTM.DLL和TARMSTM.DLL, Parameter 均为:-pSTM32F103RC,用于设置支持芯片的软硬件仿真…
最近才做的板子由于自己的粗心把串口线搞反了,还好只有两条,飞线解决,而且现在还只是样板,但是还是应该引以为戒,以后做硬件一定要谨慎. 今天同事出差把CAN分析仪拿走了,本来在开发板上调试好的程序不知为何移植到板子上以后CAN突然不能发送数据了,恰好今天没法用硬件调试,只能用软件仿真了.除了CAN部分在主函数前还有和USART相关的操作,起初我苦思冥想也没想到这能有什么错,之前用开发板的时候串口和CAN都可以用.昨天仅仅把串口1移植到了串口2,尽管这两个串口不在同一个总线上,但是想起来和CAN八竿…
导读:PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值). PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,广泛应用在从测量.通信到功率控制与变换的许多领域中. 本文引用地址:http://www.eepw.com.cn/article/272990.htm PWM是什么——PWM原理 脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系…
keil mdk5.14新建工程进行仿真时,进入Debug环境发现System Viewer菜单显示空白,Peripherals菜单没有外设寄存器.如图1和图2所示.打开Oprons for Target 查看System Viewer File选项没有勾选Use Custom File,系统默认的STM32F103xx.svd.如图3所示.查看Debug选项中的Dialog DLL一栏写着DCM.DLL.Parameter一栏写着-pCM3.如图4所示. 图1   System Viewer菜…
uCOS2.81后的版本中有软件定时器的概念,如果要开启定时器任务,需要在OS_CFG.H文件中 #define  OS_TMR_EN                 1 软件定时器其实跟硬件中断是相似的,定时时间到了,就执行一次回调函数,虽然好用,但是也会降低系统的实时性. 软件定时器也需要一个时钟节拍驱动,这个驱动也是由硬件实现的,一般使用uCOS中的任务延时节拍驱动来驱动软件定时器,每个时钟节拍OSTmrCtr(全局变量,初始值为0)加1,当OSTmrCtr的值等于OS_TICKS_PER…
在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:    ·Quartus不支持Testbench:    ·调用了megafunction或者lpm库之类的Altera的函数:    ·时序仿真要在Modelsim下做仿真.    下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:1.设置仿真库路径    打开M…
一.引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措.实际上.各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧.对于排查这些程序错误问题可以起到举一反三.事半功倍的效果.软件调试是单片机技术人员必须掌握的重要基本技能. 下面以单片机常用开发软件Keil为例,通过一个项目任务实例来介绍单片机软件仿真与调试的方法. 二.Keil仿真与调试 点击运行软件Keil uVision2.其调试操作步骤大体可以分为5步: 1.创建工程 在项目开发中,并不是仅…
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为底盘包含软硬件整套解决方案,是很多机器人公司的核心技术,一般不会随便公开.出于强烈的求知欲与学习热情,我想自己DIY一整套两轮差分底盘,并且将完整的设计过程公开出去供大家学习.说干就干,本章节主要内容: 1.stm32主控硬件设计 2.stm32主控软件设计 3.底盘通信协议 4.底盘ROS驱动开发…
新建CCS项目 选择File/New/CCS Project: 新建项目对话框 1)        Project name: 指项目名称,这里要注意的项目名称不区分大小写. 2)        Output type: 输出类型,Executable指可执行文件(一般为.out格式,可直接下载到DSP内运行),Static Library指静态库(输出格式一般为.lib文件),我们这里的程序需要直接在DSP内运行,所以选择Executable格式 3)        Use default l…
STM32之旅3--时钟数 STM32F1是M3内核,它的时钟数很庞大,让一个初学者去看,估计会很吃力,和我们入门的8051单片机的时钟不同,这里又倍频.又分频,而且还分成好多个时钟,不同的外设时钟不一样. 总感觉不都明了,后来在STM32CubeMX中看到了时钟配置,这个看起来就明了多了…
(转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/linguanh/p/4645115.html  这次分享给大家的是,刚些写好的类似社交软件打字时地下弹出的表情布局. 先看下我的默认效果图. 该效果图里面使用的图片资源,是默认的IC_lanucher,在我的类里面,你可以自定义,包括布局,几行几列,什么的,都可以自定义.底下的是小点标. 下集预告:我将在使…
Uvision5不能进行软件仿真不能进行软件仿真,报错: error 65: access violation at 0x40021000 : no 'read' permission(软件仿真出错) *** error 65: access violation at 0x40021004 : no 'read' permission 出错原因:uvision5的问题,在debug中的dll和paramentor要改为DARMSTM.DLL和-pSTM32F103VC.…
modelsim 仿真时出现无限迭代(iteration reach limitation) 出现这种故障的原因:  一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signal_A又通过组合逻辑产生signal_B,signal_B又通过组合逻辑产生signal_C,signal_C又通过组合逻辑产生signal_A(这样就形成了组合逻辑的无限循环),就会导致这个故障出现.类似: always(*) begin signal_A=~signal_A; end 出现这种故…
IP 核生成 ROM 步骤1:Tools --> MegaWizard Plug-In Manager 步骤2:Create a new custom megafuction variation 步骤3:Memory Compier --> ROM --> Verilog HDL --> 自定义名称 步骤4: 步骤5: 步骤6: 步骤7: questasim仿真注意问题 1.仿真时要注意是否有 altera_mf 库文件,否则会报错. Module 'altsyncram' is…
利用Xilinx ROM仿真时,注意包括.mif文件.一般是将.v文件和.mif文件放在同一个目录下,以便.v文件读取.mif数据.如不注意,就不会读出有效数据.…
通过查看Sec的值和上次中断的差值计算的,虽然这个值是不准的 ,但实际上时间是准的, 原因如下:stm32在调试模式下虽然进断点之后程序停止了,但定时器的时钟还在走,计数器还在计数,若要在产生断点时计数器停止计数可以 在初始化时调用函数DBGMCU_Config(DBGMCU_TIM2_STOP,ENABLE);,这样一来仿真的时候定时时间就是准的了…
系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难度并不高,但是理解起来还是比较复杂的,我会在本文中从实际应用出发去说明,当然最好去仔细研读宋岩翻译的<Cortex-M3权威指南>第八章,注意这不是一本教你如何编写STM32代码的工具书,而是阐述Cortex-M3内核原理的参考书,十分值得阅读. SysTick系统时钟的核心有两个,外设初始化和S…
源:http://blog.163.com/zhaojun_xf/blog/static/3005058020117784643555/ 在开发ARM项目中,很多工程师都不太喜欢使用MDK的调试模式,总是喜欢向51开发一样的下载验证方式.殊不知MDK的调试方法往往会给我们事半功倍的效果. 那么在下载调试的工程中,总是容易遇到如下所示的错误提示:          这个错误一般出现在调试时,代码能够正确下载到处理器中,但是在加载AXF(调试)文件时,总是失败,导致MDK无法进入调试模式.出现这个问…
由于近期在准备海洋航行器比赛,正好趁此机会学习一下ARM,看到周围很多同学都在使用32,所以我也买了一块STM32F103ZET6,准备好好地学习一下. STM32的时钟系统相当的复杂,包含了5个时钟源,分别是HSI HSE LSI LSE PLL,HSI是高速内部时钟.RC振荡器,频率为8M,HSE是高速外部时钟,即晶振,我的核心板上晶振为8M.LSI为低速内部时钟.RC振荡器,频率40k,LSE为低速外部时钟,接32.768kHz晶振,作为RTC时钟源.PLL为锁相环倍频输出,最大不超过72…
现在的PLC厂商提供的开发环境都具备仿真能力.无论是西门子.三菱.罗克韦尔还是ABB 或是其他一些厂商提供的产品都具有仿真功能. 仿真就是在没有硬件的情况下来测试程序功能,同时也为初学者提供了方便,即便没有硬件 我们也能进行试验,可以验证学习的知识是否正确(虽然我一直不认为能使用PLC是知识,我一直 认为工控PLC的学习更多的是一项技能,需要不断的练习实践). Simaitc STEP 7软件的仿真软件叫PLC Sim, 这是一个独立的软件包可以单独安装,西门子也 提供了一个打包的软件Step7…
关于IIC我觉这个博客里面说的已经够清楚了 如下图所示的写操作的时序图: 其实像这种通信协议的要求是很精确的,一点点不对都可能导致在实际工程中无法读取数据.我就是被一个应答位耽误了好久,还好最后被我发现了.虽然程序不长,但是每一句话都是值得我们认真学习的,下面是我自己结合网上还有书中的程序综合的,亲测可用.最后用keil的逻辑分析仪测试了iic端口输出的波形. iic.h #ifndef __IIC_H #define __IIC_H #include <reg52.h> #include &…
初学STM32,在RealView MDK 环境中使用STM32固件库建立工程时,初学者可能会遇到编译不通过的问题.出现如下警告或错误提示: warning: #223-D: function "assert_param" declared implicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); 这时候我们需要在“Target Options”中的“C/C++”选项卡中如图-2所示红框中添加USE_STDPERIPH_DRIVER.STM…
STM32出现HardFault_Handler故障的原因主要有两个方面: 1.内存溢出或者访问越界.这个需要自己写程序的时候规范代码,遇到了需要慢慢排查. 2.堆栈溢出.增加堆栈的大小. 出现问题时排查的方法: 1.添加软件断点,一旦在调试过程中出现Hard Fault 则会停在__breakpoint(0)处. void HardFault_Handler(void) { if (CoreDebug->DHCSR & 1) { //check C_DEBUGEN == 1 -> D…
在win7下以管理员身份运行“PZISP自动下载软件”时出现“应用程序无法启动,因为应用程序的并行配置不正确”时,是因为系统里面没有一些visual c++库 想一想,反正以后也要用上VS2010的,干脆直接把这个巨大的东西装上算了,然后一些c++的库也就齐了,装好了VS2010,重启电脑,再次运行“PZISP自动下载软件”,则可以了. 参考资料:http://blog.sina.com.cn/s/blog_5f1bcdbc0100yt46.html 顺便提一下另外一个东西,当时莫名其妙运行不了…
2013-12-04 19:07:05 将在CCS中仿真的数据导入电脑上时,可以选择不同的数据类型,以便分析,具体方法如下: 在CCS菜单中,选择File—>Data—>Save,弹出以下窗口:                         在文件名中输入要保存的文件的名字,在保存类型中可以选择保存的文件类型以及格式.文件类型有dat文件与coff文件两种,数据格式有Hex.Integer. Long .Float. Addressable Unit几种. 输入好文件名,并选择合适的数据格式…
更新时间:2017-06-07 13:26:11   分享: 问题描述 通过FTP软件连接Linux虚拟主机,在尝试创建新目录时,服务器返回错误提示:550 Create Directory Operation Failed无法创建以下目录: "/xxxxxx",如下图所示: 问题分析 FTP返回550错误信息,是提示在当前目录下,用户没有权限创建新目录.Linux虚拟主机禁止在根目录/下创建新目录,只能在htdocs或myfolder目录下新建子目录. 解决方案 如果您使用FTP软件…
困扰朕长达一周的问题得以解决!!!!! 发生这种情况的根源是win10自带的防火墙的问题.只有关闭防火墙,再重新打开软件进行仿真就能出现正常的仿真界面. 关闭防火墙的方法为:控制面板>>系统和安全>>Windows防火墙…