SmartKIT-ESP开发板和CNC shield v3拓展板的连接以及程序编写注意事项_cnc shield v3 雕刻机扩展板 接线_素手执锐血衊白衣的博客-程序员宅基地

技术标签: SMartKIT-ESP  写字机  步进电机  JTAG重映射  CNC shield v3  

    SmartKIT-ESP是一款兼容Arduino UNO R3引脚的STM32开发板,那么自然可以使用Arduino UNO R3的拓展板——CNC shield v3。前置文章:《SmartKIT-ESP单片机开发控制板测试前资料整理》。


1、引脚对应关系

2、硬件连接

    值得注意的是,在XYZA四个轴中,A轴略微特殊。为了实现A轴单独驱动或者X轴双驱动等操作,拓展板上预留了两排双排排针用来切换A轴的功能,排针位置如下图蓝色方框所示。

    黄色排针用来控制方向,而蓝色排针用以切换步进脉冲来源,如果想要独立控制A轴,请将跳线帽如图安置。

3、软件编写注意事项

    步进电机的驱动很容易写,在下就不拿出来献丑了,这里只说一点:

    由于STM32F103C8T6 LQFP48这款芯片的IO口数量少,所以每一个IO口都极为珍贵,在使用SWD的板子上,显然可以省掉JTAG中多余的三个端口JTDI、JTDO、JNTRST,所以呢,这块板子的设计者就将这三个端口引出作为IO口,但是!这几个端口要当做普通IO口使用的话需要进行重映射!而这家伙给的手册里面没有说!(咬牙切齿,还好看了数据手册心里有数,只被坑了一会儿,步进电机工作不正常就该想到的_(:з」∠)_,(其实很早之前已经被坑过一次了_(:з」∠)_))

34 PA13 I/O FT JTMS/SWDIO
37 PA14 I/O FT JTCK/SWCLK
38 PA15 I/O FT JTDI
39 PB3  I/O FT JTDO
40 PB4  I/O FT JNTRST

重映射的代码如下:

        //使能复用功能时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 
	//JTAG 部分端口用作普通IO口,JTAG-DP 禁用 + SW-DP 使能
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 

后面该怎么弄就怎么弄。

以上。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_17459305/article/details/81704700

智能推荐

vue插槽的理解和使用-默认插槽-具名插槽-作用域插槽-程序员宅基地

一、什么是插槽?插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,填充的内容会替换子组件的<slot></slot>标签。下面大家可以看一下代码了解 ====>默认插槽子组件代码如下 :父组件代码如下 :最后看下渲染的效果 :我们可以看到的是填充的内容会替换子组件的<slot></slot>标签里面的内容...._具名插槽

请问什么叫纹波?怎样测量纹波?_负载波纹是什么意思-程序员宅基地

纹波就是一个直流电压中的交流成分。直流电压本来应该是一个固定的值, 但是很多时候它是通过交流电压整流、滤波后得来的,由于滤波不干净,就 会有剩余的交流成分,即便如此,就是用电池供电也因负载的波动而产生波纹。事实上,即便是最好的基准电压源器件,其输出电压也是有波纹的。如下图: 要体验,可以用示波器来看,就会看到电压上下轻微波动,就 像水纹一样,所以叫做纹波。 一般使用交流毫伏表_负载波纹是什么意思

IEEE802.15.4的超帧和时槽解读-程序员宅基地

802.15.4的超帧不是帧,而是指一段时间。一个超帧中的活跃期,分成16个时槽。一个超帧的活跃期 = 基础超帧时间(15360us)*2^SO,而基础超帧时间 = 16*基础时槽(60个symbol,960us)。因而可以得到:一个时槽 = 基础时槽 * 2^SO。在802.15.4中常量的回退时间aUnitBackoffPeriod是20个symbol即320us。当SO=0时,一

thinkphp5.0与thinkphp6.0where条件的区别一_thinkphp5.1 和thinkphp6 的区别-程序员宅基地

thinkphp6.0组装where数组是这样的 $where[] = ["user_id","=",1]thinkphp5.0是这样的$where["user_id"] = ["=",1]_thinkphp5.1 和thinkphp6 的区别

python第三章 基本数据类型_python输入今天比昨天努力的程度,输出两行,分别为365天后,-程序员宅基地

python第三章 基本数据类型天天向上,努力学习改变变化因子(每天提高的能力值)工作日努力学习,周末耍,那么我们365天能力值怎么样?天天向上,努力学习伪代码描述:基本1.0天天努力学习,1.0+0.0001/每天,如果您持续365天,你的能力值提升pow(1.0+0.0001,365)天天打游戏,不努力学习,1.0-0.0001/每天,如果您持续365天,你的能力值降低pow(1.0-0.0001,365)dayup=pow(1.0+0.0001,365)daydown=p_python输入今天比昨天努力的程度,输出两行,分别为365天后,

微信公众号或小程序调用本地WEB服务API-程序员宅基地

本机WEB服务映射到公网提供给微信公众号或小程序调用内网主机上部署了WEB服务端,怎样将本地的WEB服务映射到外网,提供给微信公众号和小程序调用?本文将介绍使用holer实现的将自己的WEB服务映射到外网具体步骤。1. 准备工作1.1 安装Java 1.7及以上版本执行命令java -version检查Java安装和配置是否正确。1.2 安装并启动WEB服务端本机默认安装的..._微信服务号调用本地数据

随便推点

POJ3299解题报告-程序员宅基地

HumidexTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 17054 Accepted: 6199DescriptionAdapted from Wikipedia, the free encyclopediaThe humidex is a me

个人项目实训(四)——运行时的报错与解决-程序员宅基地

在运行过程中遇到许多问题,记录是为了纪念

DVWA之Reflected XSS(反射型XSS)_xss(reflected)dvwa-程序员宅基地

目录LowMediumHighImpossibleLow源代码:&lt;?phpheader ("X-XSS-Protection: 0");// Is there any input?if( array_key_exists( "name", $_GET ) &amp;&amp; $_GET[ 'name' ] != NULL ) { // Feedb..._xss(reflected)dvwa

Tensorflow学习以及问题解决-程序员宅基地

问题:”’tensorboard’ 不是内部或外部命令,也不是可运行的程序 或批处理文件”解决方法 解决:tensorflow 相对应版本要激活,不然python版本会默认原先Anaconda自带版本 **问题:**AttributeError: ‘module’ object has no attribute ‘SummaryWriter’ 解决:tf.train.SummaryWrite...

智能合约案例(众筹)_众筹智能合约案例编写实训报告-程序员宅基地

环境需要:remix技能需要:solidity语言基础1.打开remix:https://remix.ethereum.org/2.创建.sol文件3.输入脚本(放脚本如下)4.compile文件5.部署6.调用函数(对于本脚本来说,建立众筹、捐献、IsCompelete函数先后执行)pragma solidity ^0.4.0;//创建众筹事件、捐赠到提款 contract zhongchou{ //捐赠者的对象--- 捐赠者地址、捐献金额 struct funde_众筹智能合约案例编写实训报告

leetcode刷题——之零矩阵-程序员宅基地_零矩阵一个点-1,每次选中一个点行列全+1-程序员宅基地

leetcode刷题——之零矩阵问题引出编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例输入:[ [1,1,1], [1,0,1], [1,1,1]]输出:[ [1,0,1], [0,0,0], [1,0,1]]思路构造两个数组,一个行数组,一个列数组,来记录此行此列是否应该为零。for(i = 0;i < m;i++){ for(j = 0;j < n;j++){ if(matrix[i][j]==0){ _零矩阵一个点-1,每次选中一个点行列全+1