是一个单片机STM32RCT6的PA8,PA9,PA10引脚输出PWM波形的仿真步骤,此外还展示了软件运行过程,如何查看全局变量的实时数据。---由网上下载整理。
上传时间: 2020-05-05
上传用户:aleeba8
该问题由某客户提出,发生在 STM32F103VBT6 器件上。据其工程师讲述:在为 STM32 调试软件过程中,遇到了一个怪现象:有如表(一)所示的一段程序中,KeyIn 是一个全局变量。当有按键按下时,键盘的中断服务程序会将对应的键值放入其中,当按键释放后,键盘中断服务程序则把 RESET 值放入该变量。行(1)的条件语句在主程序中,检测有无按键按下,并处理。行(2)则是等待按键释放。调试时,在行(1)和行(2)处各设置一个断点,然后全速运行程序。当程序停在行(1)时按下按键,继续全速运行程序。当程序
标签: while循环
上传时间: 2022-02-21
上传用户:
#define PI (3.14159265)// 度数表示的角速度*1000#define MDPS (70)// 弧度表示的角速度#define RADPS ((float)MDPS*PI/180000)// 每个查询周期改变的角度#define RADPT (RADPS/(-100))// 平衡的角度范围;+-60度(由于角度计算采用一阶展开,实际值约为46度)#define ANGLE_RANGE_MAX (60*PI/180)#define ANGLE_RANGE_MIN (-60*PI/180)// 全局变量pid_s sPID; // PID控制参数结构体float radian_filted=0; // 滤波后的弧度accelerometer_s acc; // 加速度结构体,包含3维变量gyroscope_s gyr; // 角速度结构体,包含3维变量int speed=0, distance=0; // 小车移动的速度,距离int tick_flag = 0; // 定时中断标志int pwm_speed = 0; // 电机pwm控制的偏置值,两个电机的大小、正负相同,使小车以一定的速度前进int pwm_turn = 0; // 电机pwm控制的差异值,两个电机的大小相同,正负相反,使小车左、右转向float angle_balance = 0; // 小车的平衡角度。由于小车重心的偏移,小车的平衡角度不一定是radian_filted为零的时候
上传时间: 2022-06-01
上传用户:
应广单片机 MINI-C编程指南.Mini-c总结文档一、缺点:(一)函数不能带参数.解决方法:通过A或全局变量进行参数传递;(二)不能使用for循环解决方法:用while循环代替for循环.(三)数组和指针功能弱化解决方法:① 使用rom查表② 使用ram查表(四)不支持全局变量定义同时进行初始化解决方法: 在初始化的时候记得对全局变量进行初始化. (五)Bit变量只支持写入0,或1,不支持直接bit变量取反解决方法 :if(uBitFlag){ uBitFlag=0;}Else{ uBitFlag=1; } 二、优点:(一)函数不带参数,可以节省堆栈空间(二)支持ROM查表(三).delay时间非常准确,无需手工计算(四)支持bit变量,节省ram空间,支持字,字节拆分.(五)烧录支持滚动码写入.(六)端口配置可以使用脚本(七) 代码自动生成
标签: 单片机
上传时间: 2022-06-17
上传用户:
FreeModbus学习笔记一、FreeModbus简介FreeMODBUS一个奥地利人写的Modbus协议。它是一个针对嵌入式应用的一个免费(自由)的通用MODBUS协议的移植。Modbus是一个工业制造环境中应用的一个通用协议。Modbus通信协议栈包括两层:Modbus应用层协议,该层定义了数据模式和功能;另外一层是网络层。FreeMODBUS提供了RTU/ASCII传输模式及TCP协议支持。FreeModbus遵循BSD许可证,这意味着用户可以将FreeModbus应用于商业环境中。目前版本FreeModbus-V1.5提供如下的功能支持:二、FreeModbus对硬件的需求FreeModbus 协议对硬件的需求非常少——基本上任何具有串行接口,并且有一些能够容纳modbus数据帧的RAM的微控制器都足够了。◆一个异步串行接口,能够支持接收缓冲区满和发送缓存区空中断。一个能够产生RTU传输所需要的t3.5字符超时定时器的时钟。对于软件部分,仅仅需要一个简单的事件队列。在使用操作系统的处理器上,可通过单独定义一个任务完成Modbus时间的查询。小点的微控制器往往不允许使用操作系统,在那种情况下,可以使用一个全局变量来实现该事件队列(AtmelAVR移植使用这种方式实现)。实际的存储器需求决定于所使用的Modbus模块的多少。下表列出了所支持的功能编译后所需要的存储器。ARM是使用GNUARM编译器3.4.4使用-01选项得到的。AVR项数值是使用WinAVR编译器3.4.5使用-Os选项编译得到的。
标签: freemodbus
上传时间: 2022-06-24
上传用户:
rt-thread的定时器的基本工作原理在RT-Thread定时器模块维护两个重要的全局变量,一个是当前系统的时间rt_tick(当硬件定时器中断来临时,它将加1),另一个是定时器链表rt_timer_list,系统中新创建的定时期都会被以排序的方式插入到rt_timer_list(硬件定时器模式下使用)链表中,rt_timer_list的每个节点保留了一个定时器的信息,并且在这个节点加入链表时就计算好了产生时间到达时的时间点,即tick,在rt-thread系统中如果采用软件定时器模式,则存在一定时器线程rt_thread_timer_entry,不断获取当前TICK值并与定时器链表rt_timer_list上的定时器对比判断是否时间已到,一旦发现就调用对应的回调函数,即事件处理函数进行处理,而如果采用硬件定时器管理模式的话,则该检查过程放到系统时钟中断例程中进行处理,此时,是不存在定时器线程的。如下图:注:如果采用软件定时器软件定时器,则该定时器链表为rt soft_timer_list。
上传时间: 2022-06-25
上传用户:jason_vip1
菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。这个 工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。说到freeRTOS,这里就多说两句。 全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。不过我们 可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。关闭 了时间片调度,只有发生vTaskDelay的时候才会上下文切换。只要代码合理访问全局变量可以不加 保护的。因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。 源码较少,这里就不过多介绍。关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义, 老鸟发现这个宏压根没用哈,嘿嘿。阅读源码可以找到相关宏配置。不过不建议关闭,时间片调度 也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。如果有freeRTOS相关问题,可以 留言给我。废话说多了点哈,继续我们的STM32CubeMX。下面我们来讲讲这个工具的作用,讲完 后,可以自己下载一个试试,挺简单不多介绍。
标签: stm32
上传时间: 2022-07-23
上传用户:
/**************** 扫频函数*************FileName:Frepuecy_Sweep.cProjectName:FunctionDesc:CreateDate:Version:Author:ModifyHistory:Remark:5ms 执行一次***************** 包含头文件**********************/#include "Stdint_Sonix.h"#include "SysInit.h"#include "Frequency_Sweep.h"#include "adc.h"/***************** 定义全局变量*******************//***************** 声明全局变量*******************/extern bit B_Moistrue;extern u8 r_adc1,r_adc2,r_adc3;bit B_SF_OK;//是否已经扫过频标志/******************* 定义常量*********************/#define PWM1_DUTY_MIN 3u#define PWM1_DUTY_MAX 253u#define PWM1_CURRENT_MIN 10u//#define M1_Stop_500ms_Set_Value 100u
上传时间: 2022-07-24
上传用户:
1.2 源代码表示不考虑主题,列举 15 000行源代码本身就是一件难事。下面是所有源代码都使用的文本格式:1.2.1 将拥塞窗口设置为13 8 7 - 3 8 8 这是文件t c p _ s u b r . c中的函数t c p _ q u e n c h。这些源文件名引用4 . 4 B S D - L i t e发布的文件。4 . 4 B S D在1 . 1 3节中讨论。每个非空白行都有编号。正文所描述的代码的起始和结束位置的行号记于行开始处,如本段所示。有时在段前有一个简短的描述性题头,对所描述的代码提供一个概述。这些源代码同4 . 4 B S D - L i t e发行版一样,偶尔也包含一些错误,在遇到时我们会提出来并加以讨论,偶尔还包括一些原作者的编者评论。这些代码已通过了 G N U缩进程序的运行,使它们从版面上看起来具有一致性。制表符的位置被设置成 4个栏的界线使得这些行在一个页面中显示得很合适。在定义常量时,有些 # i f d e f语句和它们的对应语句 # e n d i f被删去(如:G A T E W A Y和M R O U T I N G,因为我们假设系统被作为一个路由器或多播路由器 )。所有r e g i s t e r说明符被删去。有些地方加了一些注释,并且一些注释中的印刷错误被修改了,但代码的其他部分被保留下来。这些函数大小不一,从几行 (如前面的t c p _ q u e n c h)到最大11 0 0行(t c p _ i n p u t)。超过大约4 0行的函数一般被分成段,一段一段地显示。虽然尽量使代码和相应的描述文字放在同一页或对开的两页上,但为了节约版面,不可能完全做到。本书中有很多对其他函数的交叉引用。为了避免给每个引用都添加一个图号和页码,书封底内页中有一个本书中描述的所有函数和宏的字母交叉引用表和描述的起始页码。因为本书的源代码来自公开的 4 . 4 B S D _ L i t e版,因此很容易获得它的一个拷贝:附录 B详细说明了各种方法。当你阅读文章时,有时它会帮助你搜索一个在线拷贝 [例如U n i x程序grep ( 1 )]。描述一个源代码模块的各章通常以所讨论的源文件的列表开始,接着是全局变量、代码维护的相关统计以及一个实际系统的一些例子统计,最后是与所描述协议相关的 S N M P变量。全局变量的定义通常跨越各种源文件和头文件,因此我们将它们集中到的一个表中以便于参考。这样显示所有的统计,简化了后面当统计更新时对代码的讨论。卷 1的第2 5章提供了S N M P的所有细节。我们在本文中关心的是由内核中的 T C P / I P例程维护的、支持在系统上运行的S N M P代理的信息。TCP IP详解 卷1协议 :http://dl.21ic.com/download/tcpip-288223.html TCP IP详解 卷2实现 :http://dl.21ic.com/download/tcpip-288224.html TCPIP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议 :http://dl.21ic.com/download/tcpip-288225.html
上传时间: 2022-07-27
上传用户:
eeworm.com VIP专区 单片机源码系列 9资源包含以下内容:1. STC12C5A60S2单片机(去水印+解锁版)(1).pdf2. PCI、STC、51单片机型号命名规则.rar3. LY6206线性稳压芯片LDO原文资料.PDF4. 浮点除法运算及其在单片机上的实现.pdf5. 基于STM32的智能循迹往返小车设计.zip6. 16位单片机指令集.pdf7. 基于MSC-51单片机的智能压力变送器.zip8. 隔离型RS-485收发器ADM2483,ADM2484E,ADM2587E.doc9. 用AVR单片机实现快速跳频.pdf10. 基于单片机的智能点火控制系统设计.zip11. AS179-92LF原文资料.pdf12. LED点阵书写显示屏设计报告.pdf13. 基于AT89S52温度自动控制检测系统设计.zip14. 浅谈单片机程序设计中的“分层思想.wps15. 肺活量测量仪设计论文资料.rar16. 基于STM32芯片的工控板设计.zip17. TX-1C元件资料.rar18. 全局变量、局部变量、静态变量.doc19. TX-1C实验板分块原理图.rar20. HT-IDE3000_Holtek_C语言编程指南(中文).pdf21. 新颖60秒LED旋转电子钟.doc22. DS18B20温度传感器应用解析中文资料(有时序图).doc23. CodeBlocks手册-使用篇.pdf24. CS98P260用户编程指南 V1.3.pdf25. 基于PT100温度检测软硬件设计.doc26. LF412 原文资料.pdf27. MC33812FS原文资料.pdf28. MC9S12XS单片机原理及嵌入式系统开发2.zip29. RN8302用户手册--防窃电智能计量芯片.pdf30. RF24L01SE开发指南.pdf31. 步进电机讲义.ppt32. MB95F330系列硬件手册(中文).pdf33. msp430单片机控制步进电机实验的电路图及C程序.pdf34. 无线模块cc1101学习资料.rar35. MSP430_C语言例程注释详.pdf36. 基于18B20的温度测量仪课程设计报告.doc37. 飞思卡尔32位处理器_ARM_CORTEX_M4___K60P100M100SF2RM手册.pdf38. AD603中文资料.rar39. 自动售货机--PLC课程设计.doc40. USB雷达——看牛人如何架设自己的导弹防御系统.zip41. 真值有效值转换芯片AD637.pdf42. 程控增益放大器论文(AD603).doc43. 使用DS12C887时钟芯片设计高精度时钟.doc44. WT588D语音芯片及模块详细资料V2.10.pdf45. L298N原文资料.pdf46. Proteus仿真软件在单片机设计中的应用.pdf47. MSP430g2553中文资料.PDF48. AVR学习笔记.rar49. Proteus 与单片机实时动态仿真.pdf50. 基于MSP430G2553的电压表设计.doc51. Arduino电子积木中级套件中文教程.pdf52. proteus 教程.pdf53. DE2使用说明 原文资料.pdf54. SJA1000独立 CAN 控制器 周立功资料.pdf55. 基于8279的键盘和显示电路设计.pdf56. AD转换中常用的十种数字滤波法.doc57. 基于AT89C2051单片机的时钟日历系统.pdf58. 16F877单片机手册中文.pdf59. 51单片机开发与应用技术详解(珍藏版)PPT及源码.rar60. DS12887+1602(带温度)原理图和程序.rar61. 基于MSP430的CO报警器的设计.pdf62. 四十种常用芯片数据手册--原文资料.rar63. 电子式电能表设计毕业论文.doc64. LED照明驱动IC--NO5.pdf65. 一种基于MSP430单片机的目标指示器单体.pdf66. 基于单片机智能交流电压表的设计.pdf67. Arduino最全的中文教程.pdf68. 交流数字电压表.doc69. 基于MSP430单片机的光纤光栅传感器匹配解调系统.pdf70. 基于MSP430单片机的光发射机监控系统设计.pdf71. NAND_Flash的坏块处理.doc72. 晶片wafer 平面工艺详细介绍.pdf73. 升压IC--AN_SY6902A原文资料.pdf74. BST-BMA250-DS002-04原文资料.pdf75. 继电器论文--用MEGA16做的继电器参数测量仪.docx76. KT0803K单片机原文资料--小型调频发射系统.pdf77. 用MSP430实现斜率 A/D转换的温度控制系统.pdf78. 一 种基于MSP430单片机的蓝牙接收装置的设计.pdf79. 用MSP430实现 太阳能交通信号控制机.pdf80. TLC2543电压表设计.doc81. 用超低功耗MSP430单片机设计数据采集系统.pdf82. 基于单片机的电子负载毕业论文(含原理图+程序).doc83. 用VB实现PC机与MSP430单片机串行通信.pdf84. LM2596_DataSheet原文资料.pdf85. MAX7456原厂中文资料.pdf86. STM8S-DISCOVERY原理图(原文资料).rar87. Hi3531 H.264编解码处理器用户指南.pdf88. MSP430单片机__极端详细+应用程序,实验教程.pdf89. C语言,结构体(struct) 用法.doc90. 用 MSP430F149单片机实现步进电机通用控制器.pdf91. 基于DTH11+LCD温湿度采集.rar92. 以超低功耗微处理器MSP430为核心的热计量表设计.pdf93. AVR高速嵌入式单片机原理与应用(修订版)(1).pdf94. ILI9325中文指令说明--彩色液晶屏控制手册.pdf95. 以太网控制芯片W5100的存储装置设计.pdf96. 基于单片机的电梯控制系统的设计与实现.ppt97. 史上最便宜的USB数据采集板.doc98. 遥控车IC原理图.pdf99. 基于51单片机和LabVIEW的远程陀螺仪显示平台的构建.pdf100. 基础机器人制作与编程.ppt
上传时间: 2013-05-15
上传用户:eeworm