目录诸论第1章TMS320C54x的结构原理1.1TMS320系列DSP芯片概述101.1.1TMS320系列DSP的分类及应用101.1.2TMS320C5000DSP平台111.2TMS320C54xDSP131.2.1TMS320C54x的主要特性131.2.2TMS320C54x的组成框图161.3总线结构181.4存储器191.4.1存储器空间分配201.4.2程序存储器231.4.3数据存储器241.5中央处理单元271.5.1算术逻辑运算单元281.5.2累加器A和B291.5.3桶形移位器311.5.4乘法器/加法器单元321.5.5比较、选择和存储单元331.5.6指数编码器341.5.7CPU状态和控制寄存器341.6数据寻址方式391.6.1立即寻址411.6.2绝对寻址411.6.3累加器寻址411.6.4直接寻址421.6.5间接寻址431.6.6存储器映像寄存器寻址461.6.7堆栈寻址471.7程序存储器地址生成方式481.7.1程序计数器491.7.2分支转移491.7.3调用与返回501.7.4条件操作511.7.5重复操作531.7.6复位操作541.7.7中断551.7.8省电方式591.8流水线601.8.1流水线操作601.8.2延迟分支转移621.8.3条件执行641.8.4双寻址存储器与流水线651.8.5单寻址存储器与流水线671.8.6流水线冲突和插入等待周期671.9在片外围电路711.9.1并行I/O口及通用I/O引脚711.9.2定时器721.9.3时钟发生器741.9.4主机接口781.10串行口831.10.1串行口概述831.10.2标准串行口841.11DMA控制器971.11.1DMA控制器的基本特性971.11.2子地址寻址方式971.11.3DMA通道优先级和使能控制寄存器1001.11.4DMA通道现场寄存器1021.11.5DMA编程举例1081.12外部总线1131.12.1外部总线接口1131.12.2外部总线操作的优先级别1141.12.3等待状态发生器1151.12.4分区切换逻辑1171.12.5外部总线接口定时图1181.12.6复位和IDLE3省电工作方式1201.13TMS320C54x引脚信号说明122第2章指令系统2.1指令的表示方法1302.1.1指令系统中的符号和略语1302.1.2指令系统中的记号和运算符1332.2指令系统1352.2.1指令系统概述1352.2.2指令系统分类135第3章汇编语言程序开发工具3.1TMS320C54x软件开发过程1373.2汇编语言程序的编写方法1393.3汇编语言程序的编辑、汇编和链接过程1413.4COFF的一般概念1433.4.1COFF文件中的段1433.4.2汇编器对段的处理1443.4.3链接器对段的处理1463.4.4COFF文件中的符号1483.5汇编1493.5.1运行汇编程序1493.5.2列表文件1513.5.3汇编命令1543.5.4宏定义和宏调用1543.6链接1563.6.1运行链接程序1563.6.2链接器选项1573.6.3链接器命令文件1583.6.4多个文件的链接164第4章Simulator和CCS集成开发工具的使用方法4.1Simulator的使用方法1694.1.1软件仿真器概述1694.1.2仿真命令1714.1.3仿真器初始化命令文件1744.1.4仿真外部中断1764.2什么是CCS1774.3如何安装和设置CCS1784.3.1CCS对计算机系统的配置要求1784.3.2CCS的安装与设置1784.4CCS窗口介绍1804.4.1CCS窗口示例1804.4.2CCS的菜单栏和快捷菜单1804.4.3CCS的常用工具栏1814.5如何建立工程文件1824.5.1工程文件的建立、打开和关闭1834.5.2在工程文件中添加或删除文件1834.5.3编辑源文件1834.5.4工程的构建1844.6如何调试程序1854.6.1加载可执行文件1854.6.2程序的运行和复位1864.6.3断点设置1874.6.4内存、寄存器和变量操作1884.7如何与外部文件交换数据1914.7
2023/8/25 15:41:47 3.6MB DSP结构 原理 TMS320C54X
1
纯人工翻译中文版本,STM32CubeMX用户手册中文版,STM32CubeMX用户手册中文版UM1718-翻译版.菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。
这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。
说到freeRTOS,这里就多说两句。
全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。
不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。
关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。
只要代码合理访问全局变量可以不加保护的。
因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。
源码较少,这里就不过多介绍。
关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。
阅读源码可以找到相关宏配置。
不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。
如果有freeRTOS相关问题,可以留言给我。
废话说多了点哈,继续我们的STM32CubeMX。
下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。
到官网下载STM32CubeMX,并安装。
1:芯片选型打开STM32CubeMX,我们点击newproject,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。
空白的一般默认只有一个。
下图是我勾选以太网的截图。
上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。
除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。
我们选择其中一个的单片机后。
右上部分给我们提供了完美的支持。
第一个选项提供了改cpu的特性,我们可以大概的了解选中的cpu资源。
第二个选项提供该cpu框图,截图图片太大,这里就不截图了。
第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。
第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。
第五个选项提供了芯片购买途径,这个每个人自己选择吧。
第六个选项开始工程,芯片选好了,就可以开始工程。
2:设定芯片。
芯片选好后,可以开始设定芯片。
这就是软件工程师的好帮手呀。
比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。
如下图:上面我选了标准的MII接口。
很多人可能就不理解,你勾了个以太网,咋报错了。
老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。
告诉你他们不能使用了。
还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。
比如我们还要给它个外部时钟。
我们勾选时钟即可,响应的时钟脚就会分配出来。
如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择:软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。
选择时钟设置页面(clockconfiguration)时钟轻松设定,如下图,简单明了,不过多解释了:时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。
就不多举例了,比如网络功能里面设置mac地址等。
3:生产初始化代码经过上面的图形化设定,我们可以直接生产初始化代码。
省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。
点击project下面的生成代码选项。
输入工程名(根据你项目需要起名),这里我就随便输入一个名字。
设定好相关参数。
点击ok即可。
顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。
生成后打开文件夹内容如下:上图的inc和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。
src文件夹文件如下:打开熟悉的ma
2023/8/19 21:31:32 11.41MB stm32 仿真
1
纯正正弦波源程序//spwm信号调制//------------------------------------------------------------#include#include//系统配置__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTEN);//打开看门狗,选择高速晶振,上电延时复位,掉电复位使能,代码保护//------------------------------------------------------------//指示灯宏定义#defineL1_RED_ONRB1=1;RB2=0;//L1红灯亮#defineL1_OFFRB1=0;RB2=0;#defineL2_RED_ONRB4=1;RB3=0;//L2红灯亮#defineL2_OFFRB4=0;RB3=0;#defineL3_RED_ONRB7=1;RB5=0;//L3红灯亮#defineL3_OFFRB7=0;RB5=0;#defineL1_GREE_ONRB2=1;RB1=0;//L1绿灯亮#defineL2_GREE_ONRB3=1;RB4=0;//L2绿灯亮#defineL3_GREE_ONRB5=1;RB7=0;//L3绿灯亮
2023/8/2 15:42:34 94KB 逆变器
1
使用stm32f103RCT6串口DMA空闲中断接收,DMA发送完整源码,修改串口只需修改对应宏定义即可
2023/7/1 16:21:09 2.91MB stm32F103 串口 DMA
1
第1章概述1.1单片机的结构与应用1.1.1单片机的定义、分类与内部组成1.1.2单片机应用系统的结构及其工作过程1.1.3单片机的应用1.2单片机基础知识1.2.1数制与数制间的转换1.2.2单片机中数的表示方法及常用数制的对应关系1.2.3逻辑数据的表示1.2.4单片机中常用的基本术语1.3单片机入门的有效方法与途径1.4学习单片机的基本条件1.4.1软件条件1.4.2硬件条件习题与实验第2章单片机开发软件及开发过程2.1仿真软件Proteus的使用2.1.1Proteus的主要功能特点2.1.2实例1:功能感受——Pmteus仿真单片机播放《渴望》主题曲2.1.3Proteus软件的界面与操作介绍2.1.4实例2:Proteus仿真设计快速入门2.2KeilC51的使用2.2.1单片机最小系统2.2.2实例3:用Kei1C51编写点亮一个发光二极管的程序2.3程序烧录器及烧录软件的使用习题与实验第3章逐步认识单片机基本结构3.1实例4:用单片机控制一个灯闪烁3.1.1实现方法3.1.2程序设计3.1.3用Proteus软件仿真3.1.4延时程序分析3.2实例5:将P1口状态送入P0口、P2口和P3口3.2.1实现方法3.2.2程序设计3.2.3用Proteus软件仿真3.2.4用实验板试验3.2.5I/O口功能介绍3.2.6I/O口的结构分析3.3实例6:使用P3口流水点亮8位1ED3.3.1实现方法3.3.2程序设计3.3.3用Proteus软件仿真3.3.4用实验板试验3.4实例7:通过对P3口地址的操作流水点亮8位1ED3.4.1实现方法3.4.2程序设计3.4.3用Proteus软件仿真3.4.4用实验板试验3.5MCS-51单片机存储器的基本结构3.5.1程序存储器3.5.2数据存储器3.6单片机的复位电路习题与实验第4章单片机C语言开发基础4.1C语言源程序的结构特点4.2标志符与关键字4.3C语言的数据类型与运算符4.3.1数据类型4.3.2运算符4.3.3实例8:用不同数据类型的数据控制1ED的闪烁4.3.4实例9:用P0口、P1口分别显示加法和减法运算结果4.3.5实例10:用P0口、P1口显示乘法运算结果4.3.6实例11:用P1口、P0口显示除法运算结果4.3.7实例12:用自增运算控制P0口8位1ED的闪烁花样4.3.8实例13:用P0口显示逻辑“与”运算结果4.3.9实例14:用P0口显示条件运算结果4.3.10实例15:用P0口显示按位“异或”运算结果4.3.11实例16:用P0口显示左移运算结果4.3.12实例17:“万能逻辑电路”实验4.3.13实例18:用右移运算流水点亮P1口8位1ED4.4C语言的语句4.4.1概述4.4.2控制语句4.4.3实例19:用if语句控制P0口8位LED的点亮状态4.4.4实例20:用swtich语句控制PO口8位LED的点亮状态4.4.5实例21:用for语句设计鸣笛报警程序4.4.6实例22:用while语句控制PO口8位LED闪烁花样4.4.7实例23:用dOwhile语句控制PO口8位LED流水点亮4.5C语言的数组4.5.1数组的定义和引用4.5.2实例24:用字符型数组控制PO口8位LED流水点亮4.5.3实例25:用PO口显示字符串常量4.6C语言的指针4.6.1指针的定义与引用4.6.2实例26:用PO口显示指针运算结果4.6.3实例27:用指针数组控制PO口8位LED流水点亮4.6.4实例28:用数组的指针控制PO口8位LED流水点亮4.7C语言的函数4.7.1函数的定义与调用4.7.2实例29:用PO口、P1口显示整型函数返回值4.7.3实例30:用有参函数控制PO口8位LED流水速度4.7.4实例3l:用数组作函数参数控制PO口8位LED流水点亮4.7.5实例32:用指针作函数参数控制PO口8位LED流水点亮4.7.6实例33:用函数型指针控制PO口8位LED流水点亮4.7.7实例34:用指针数组作为函数的参数显示多个字符串4.7.8实例35:字符软件ctype.h中的isalpha()函数应用举例4.7.9实例36:内部函数库文件intrins.h中的_cml_()函数应用举例4.7.10实例37:标准函数库文件stdlib.h中的rand()函数应用举例4.7.1l实例38:字符串函数库文件string.h中的strcmp()函数应用举例4.8C语言的编译预处理4.8.1常用预处理命令介绍4.8.2实例39:宏定义应用举例4.8
2023/6/30 19:58:11 56.86MB 单片机 c语言100例
1
适用于版本为6.15.8803汇编编译器ml.exe;
定义Unicode字符串的宏;
编译SSE3、SSSE3、SSE4.1指令的宏;
定义接口和调用接口中方法的宏。
2023/6/8 4:09:20 52KB 汇编 Unicode SSE4 COM接口
1
该驱动反对于MX25系列的NORflash,操作方式反对于SPI,QPI,SPAR接口,反对于软件SPI,硬件spi配置配备枚举,都是经由宏定义配置配备枚举。
2023/4/16 12:53:03 13KB MX25L驱动
1
普通民间设定的最低分是2分,没法没法。
windows平台以及arm开拓板都能使用,留意源文件中的宏定义。
2023/4/13 2:53:10 4.23MB QT
1
目录1. C语言中的指针以及内存泄露 52. C语言难点阐发收拾 103. C语言难点 184. C/C++实现冒泡排序算法 325. C++中指针以及援用的差距 356. constchar*,charconst*,char*const的差距 367. C中可变参数函数实现 388. C法度圭表标准内存中组成部份 419. C编程拾粹 4210. C语言中实现数组的动态削减 4411. C语言中的位运算 4612. 浮点数的存储格式: 5013. 位域 5814. C语言函数二维数组传递方式 6415. C语言繁杂表白式的实施步骤 6616. C语言字符串函数大全 6817. C语言宏定义本领 8918. C语言实现动态数组 10019. C语言面试-运算符以及表白式 10420. C语言编程原则之平稳篇 10721. C语言编程罕有下场阐发 10822. C语言编程易犯缺陷群集 11223. C语言缺陷与骗局(条记) 11924. C语言提防缓冲区溢出方式 12625. C语言高效编程秘籍 12826. C运算符优先级口诀 13327. do/while(0)的妙用 13428. exit()以及return()的差距 14029. exit子法度圭表标准阻滞函数与return的差距 14130. extern与static存储空间矛盾 14531. PC-Lint与C\C++代码品质 14732. spirntf函数使用大全 15833. 二叉树的数据结构 16734. 位运算使用口诀以及实例 17035. 内存对于齐与ANSIC中struct内存方案 17336. 冒泡以及遴选排序实现 18037. 函数指针数组与返回数组指针的函数 18638. 右左法则-繁杂指针剖析 18939. 回车以及换行的差距 19240. 堆以及堆栈的差距 19441. 堆以及堆栈的差距 19842. 若何写出业余的C头文件 20243. 打造最快的Hash表 20744. 指针与数组学习条记 22245. 数组不是指针 22446. 尺度C中字符串联系的方式 22847. 汉诺塔源码 23148. 洗牌算法 23449. 深入知道C语言指针的怪异 23650. 游戏外挂的编写原理 25451. 法度圭表标准实例阐发-为甚么会陷入去世轮回 25852. 空指针终于指向了内存的哪一其中间 26053. 算术表白式的盘算 26554. 结构体对于齐的详尽含意 26955. 连连看AI算法 27456. 连连看寻路算法的思绪 28357. 重新见识:指向函数的指针 28858. 链表的源码 29159. 高品质的子法度圭表标准 29560. 低级C语言法度圭表标准员测试必过的十六道最佳题目+谜底详解 29761. C语言罕有差迟 32062. 超强的指针学习条记 32563. 法度圭表标准员之路──对于代码作风 34364. 指针、结构体、松散体的清静尺度 34665. C指针教学 35266. 对于指向指针的指针 36867. C/C++误区一:voidmain() 37368. C/C++误区二:fflush(stdin) 37669. C/C++误区三:欺压转换malloc()的返回值 38070. C/C++误区四:charc=getchar(); 38171. C/C++误区五:查验new的返回值 38372. C是C++的子集吗? 38473. C以及C++的差距是甚么? 38774. 无前提轮回 38875. 暴发随机数的方式 38976. 秩序表及其操作 39077. 单链表的实现及其操作 39178. 双向链表 39579. 法度圭表标准员数据结构条记 39980. Hashtable以及HashMap的差距 40881. hash表学习条记 41082. C法度圭表标准方案罕用算法源代码 41283. C语言有头结点链表的典型实现 41984. C语言惠通面试题 42885. C语言罕用宏定义 450
2023/4/9 12:36:18 1.28MB C语言 难点 C语言
1
第一部分 面向过程的程序设计第1章 C++概述11.1 计算机语言与程序11.1.1 机器语言与程序11.1.2 汇编语言与程序11.1.3 高级语言与程序11.2 从C到C++21.3 程序设计方法21.3.1 结构化程序设计方法31.3.2 面向对象的程序设计方法31.4 简单的C++程序引见41.5 程序开发的步骤5习题15第2章 数据类型、运算符和表达式62.1 保留字和标识符62.1.1 保留字62.1.2 标识符62.2 C++的基本数据类型62.3 常量和变量82.3.1 常量82.3.2 符号常量92.3.3 变量102.4 基本运算符和表达式112.4.1 C++运算符及表达式简介112.4.2 算术运算符和算术表达式112.4.3 运算优先级和结合性112.4.4 关系运算符和关系表达式122.4.5 逻辑运算符和逻辑表达式122.4.6 位运算符和位运算表达式122.4.7 自增、自减运算符和表达式142.4.8 赋值运算符和赋值表达式142.4.9 逗号运算符和逗号表达式152.4.10 sizeof()运算符和表达式152.4.11 逻辑表达式运算优化的副作用152.5 类型转换162.5.1 赋值时的自动类型转换162.5.2 各种类型运算量混合运算时的自动类型转换172.5.3 强制类型转换17习题218第3章 简单的输入/输出193.1 传统的输入/输出函数实现方法193.2 cout输出流203.2.1 输出八进制数、十六进制数和用科学记数法表示的数223.2.2 输出字符或字符串233.3 cin输入流233.3.1 输入十六进制或者八进制数据253.3.2 输入字符数据263.4 总结27习题327第4章 C++的流程控制294.1 算法概述294.1.1 算法的作用和类别294.1.2 算法的设计原则304.1.3 算法的表示工具304.1.4 结构化程序设计中基本结构的表示314.2 C++程序的结构和语句334.3 选择结构语句的使用354.3.1 if语句354.3.2 if语句的嵌套使用374.3.3 条件运算符384.3.4 switch语句394.4 循环结构语句的使用424.4.1 goto语句及标号的使用424.4.2 while语句434.4.3 for语句434.4.4 do-while语句444.4.5 break语句和continue语句454.4.6 循环的嵌套474.5 控制语句的应用举例47习题452第5章 函数545.1 概述545.2 函数的定义与调用545.2.1 函数的定义545.2.2 函数的调用565.2.3 函数的参数585.3 函数的原型声明595.4 函数的嵌套调用和递归调用605.4.1 函数的嵌套调用605.4.2 函数的递归调用635.5 内联函数665.6 函数重载675.6.1 参数类型不同的重载函数675.6.2 参数个数不同的重载函数685.7 使用C++系统函数685.8 作用域和存储类别695.8.1 作用域695.8.2 存储类别725.8.3 全局变量的作用域的扩展和限制745.9 程序的多文件组织765.9.1 内部函数和外部函数765.9.2 多文件组织的编译和连接77习题577第6章 编译预处理796.1 宏定义796.1.1 不带参数的宏定义796.1.2 带参数的宏定义806.2 “文件包含”处理82*6.3 条件编译83习题685第7章 数组867.1 数组的定义及应用867.1.1 一维数组的定义及使用867.1.2 一维数组作函数参数887.1.3 多维数组的定义及使用967.1.4 二维数组作函数参数987.2 字符数组的定义及应用1017.2.1 字符数组的定义1017.2.2 字符数组的初始化1017.2.3 字符数组的使用1027.2.4 字符串和字符串结束标志1027.2.5 字符数组的输入/输出1037.2.6 字符串处理函数1047.2.7 字符数组应用举例106习题7108第8章 结构体、共用体和枚举类型1108.1 结构体的定义及应用1108.1.1 结构体类型的定义1108.1.2 结构体类型变量的定义1118.
2023/2/11 6:48:32 1.36MB 王珊珊 c++ 第二版
1
共 44 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡