stm32f107vc开狗后,程序下载不了?如何解决?

在线等!STM32f107+MCP2515 但是spi总是发不出去数据,完全无法配置MCP
UID1152442&帖子8&精华0&积分137&资产137 信元&发贴收入55 信元&推广收入0 信元&附件收入0 信元&下载支出78 信元&阅读权限10&在线时间21 小时&注册时间&最后登录&
在线等!STM32f107+MCP2515 但是spi总是发不出去数据,完全无法配置MCP
SPI配置如下: void SPI_Configuration(void)
SPI_InitTypeDef&&SPI_InitS
& && &&&SPI_I2S_DeInit(SPI1);
& && &&&SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullD&&//设置SPI单向或者双向的数据模式:SPI设置为双线双向全双工
& && &&&SPI_InitStructure.SPI_Mode = SPI_Mode_M& && && && && & //设置SPI工作模式:设置为主SPI
& && &&&SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;& && && && && & //设置SPI的数据大小:SPI发送接收8位帧结构
& && &&&SPI_InitStructure.SPI_CPOL = SPI_CPOL_L& && && && && & //串行同步时钟的空闲状态为低电平
& && &&&SPI_InitStructure.SPI_CPHA = SPI_CPHA_2E& && &&&//串行同步时钟的第2个跳变沿(上升或下降)数据被采样
& && &&&SPI_InitStructure.SPI_NSS = SPI_NSS_S& && && && && & //NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制
& && &&&SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;& && && && && & //定义波特率预分频的值:波特率预分频值为256
& && &&&SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;& && &&&//指定数据传输从MSB位还是LSB位开始:数据传输从MSB位开始
& && &&&SPI_InitStructure.SPI_CRCPolynomial = 7;& && &&&//CRC值计算的多项式
& && &&&SPI_Init(SPI1, &SPI_InitStructure);&&//根据SPI_InitStruct中指定的参数初化外设SPIx寄存器
& && &&&SPI_Cmd(SPI1, ENABLE); //使能SPI外设
但是跟踪发送SPIX-&DR寄存器,发现不能对其进行幅值,一直都是0XFE,这是为什么,收到的数据也是0XFE
求大神帮忙解决一下,困扰两天了,在线等!
UID1324330&帖子5&精华0&积分104&资产104 信元&发贴收入25 信元&推广收入0 信元&附件收入0 信元&下载支出6 信元&阅读权限10&在线时间0 小时&注册时间&最后登录&
你的SPI时钟和电源使能了吗?发GPIO配置代码看看。
UID1152442&帖子8&精华0&积分137&资产137 信元&发贴收入55 信元&推广收入0 信元&附件收入0 信元&下载支出78 信元&阅读权限10&在线时间21 小时&注册时间&最后登录&
/*MCP2515片选信号引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/*MCP2515数据输入输出时钟引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;& &
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOB
GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);&&//PA5/6/7上拉
&&这是GPIO的
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,ENABLE);
& &RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE); //SPI1时钟使能
都配置了。
就是不知道SPI是否把数据发出去了
[通过 QQ、MSN 分享给朋友]21ic官方微信
后使用快捷导航没有帐号?
查看: 2810|回复: 5
STM32F103ZET6 可以下载不能调试(Ulink2)
&&已结帖(20)
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
主题帖子积分
专家等级: 结帖率:66%
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
使用STM32F103ZET6新作了样板,直接用F103VC的模板,运行环境为MDK4.14仿真器为Ulink2。可以下载程序,并且程序运行正常。但是调试的时候有问题。现象为点击debug按钮后程序自动运行,并且跑飞,如果点击停止,然后再运行。command栏里提示can't access memory错误。
是和使用了和实际芯片不吻合的模板的原因吗?
可是同样的程序在神州的开发板上stm32F107里面都没有问题.
我试着在模板的target option的第一页的device栏里把芯片改为zet6,还是不行。
, , , , , , ,
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
主题帖子积分
专家等级: 结帖率:66%
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
STM32F103ZET6 可以下载不能调试(Ulink2)
使用STM32F103ZET6新作了样板,直接用F103VC的模板,运行环境为MDK4.14仿真器为Ulink2。可以下载程序,并且程序运行正常。但是调试的时候有问题。现象为点击debug按钮后程序自动运行,并且跑飞,如果点击停止,然后再运行。command栏里提示can't access memory错误。
是和使用了和实际芯片不吻合的模板的原因吗?
可是同样的程序在神州的开发板上stm32F107里面都没有问题.
我试着在模板的target option的第一页的device栏里把芯片改为zet6,还是不行。
主题帖子积分
技术达人, 积分 8084, 距离下一级还需 1916 积分
技术达人, 积分 8084, 距离下一级还需 1916 积分
主题帖子积分
专家等级: 结帖率:100%
主题帖子积分
技术达人, 积分 8084, 距离下一级还需 1916 积分
技术达人, 积分 8084, 距离下一级还需 1916 积分
可以换换jlink试一试,感觉这个还是可以的!
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
主题帖子积分
专家等级: 结帖率:66%
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
原因找到了 结贴
JTAG方式烧录后再用SWD的方式是连不上仿真器的,无法调试或下载,反之亦然。
方法是,板子上电前,先把Boot0拉高,让程序不能启动,然后上电。
上电后再把boot1拉低,然后用falsh-&erease擦除以前的程序。再次上电,就可以用任意JTAG的方式下载程序或调试了
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
主题帖子积分
专家等级: 结帖率:66%
主题帖子积分
实习生, 积分 24, 距离下一级还需 26 积分
实习生, 积分 24, 距离下一级还需 26 积分
本帖最后由 xiaoguo3225 于
12:52 编辑
原因找到了 结贴
JTAG方式烧录后再用SWD的方式是连不上仿真器的,无法调试或下载,反之亦然。
方法是,板子上电前,先把Boot0拉高,让程序不能启动,然后上电。
上电后再把boot0拉低,然后用falsh-&erease擦除以前的程序。再次上电,就可以用任意JTAG的方式下载程序或调试了
主题帖子积分
高级工程师, 积分 7277, 距离下一级还需 723 积分
高级工程师, 积分 7277, 距离下一级还需 723 积分
主题帖子积分
专家等级: 结帖率:88%
主题帖子积分
高级工程师, 积分 7277, 距离下一级还需 723 积分
高级工程师, 积分 7277, 距离下一级还需 723 积分
多谢共享经验,很有参考价值
时间类勋章
精英会员奖章
等级类勋章
奔腾之江水
发帖类勋章
技术奇才奖章
人才类勋章
热门推荐 /1STM32F107_ETH_LwIP_V1.0.0 - 下载频道 - CSDN.NET
&&&&STM32F107_ETH_LwIP_V1.0.0
&STM32F107_ETH_LwIP_V1.0.0
STM32F107_ETH_LwIP_V1.0.0 官方例程
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
网络技术下载排行
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
STM32F107_ETH_LwIP_V1.0.0
所需积分:0
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:stm32f107串口2收发程序,帮忙测下能不能进入中断~~~~~~~~!!
<em style="color:#999;font-size:12 margin-left:10" id="authorposton13-11-22 11:27:28&nbsp
开发板STM32F107求助!有这款开发板的朋友帮忙测下这个程序能不能收发串口数据。原先这个程序是可以收发串口数据,就是前天让它跑了一段时间后就不行了,我用调试助手连续循环发送数据给板子,板子收到数据就返回给调试助手,后面调试助手卡住了就没数据发送给板子,我重新测试串口,发现再也进不了中断处理函数了。现在的问题就是板子收到串口数据不能进入中断处理函数,打了断点也进不去,不知道是什么问题。
各位有这款板子的朋友帮忙测试程序,测下串口能不能进入中断?我这板子现在串口是进不了中断,但是可以再烧程序,定时器中断也可以触发,找不出解决办法了。
程序上传几次都失败了,转这里。
{:28:}{:28:}{:28:}{:28:}{:28:}
你在中断函数里面放置一个点亮LED的函数,就能判断啦
解决问题了,程序没问题,是板子上的一个光耦坏了,换了一个就能收到数据实现中断了。
站长推荐 /4
Powered by电子产业链&&全程电子商务平台
Modbus-Modbus TCP/IP的网关设计
Modbus-Modbus TCP/IP的网关设计
发布: | 作者: | 来源:
| 查看:319次 | 用户关注:
摘 要: 介绍一种基于STM32芯片的Modbus-Modbus TCP/IP网关系统,系统采用&COSII嵌入式实时操作系统,实现Modbus串行链路到以太网的协议转换,利用多线程与存储池技术解决速率不匹配问题,最后对系统的通信质量进行相关测试。实验结果表明,系统方案能够在低廉的成本下,有效、准确地进行Modbus串行链路与以太网的相互通信。关键词: Modbus协议;移植;协议转换;多线
摘 要: 介绍一种基于芯片的Modbus-Modbus TCP/IP网关系统,系统采用&COSII,实现Modbus串行链路到以太网的,利用技术解决速率不匹配问题,最后对系统的通信质量进行相关测试。实验结果表明,系统方案能够在低廉的成本下,有效、准确地进行Modbus串行链路与以太网的相互通信。关键词: ;;协议转换;多线程与存储池 &十二五&规划纲要将&&正式纳入国家发展战略,特别提出&现代电网体系要适应大规模跨区输电和新能源发电并网的要求。进一步扩大输电规模,完善主干电网,依托信息、控制和储能等先进技术,推进智能电网建设。&电网主要包含了发电、输电、变电、配电、用电和其他辅助部分[1]。低压的配电和用电端是智能电网的末端,是电能最主要的消耗部分,大约占到80%。因此智能电网的建设要求配电和用电所需要的低压电器必须具备数据通信与采集等智能化特性[2]。 当前,国内外许多大型低压电器设备厂的产品都支持Modbus总线标准。但是,智能电网的信息化建设利用的是以太网等方式,而非现场总线技术[3]。这就要求数据能在以太网与现场总线之间进行交互。 国外的几大电器也都有相应的网关设备,但是价格昂贵。国内目前也有些类似的产品出现,相对于国外的产品,虽然在价格上有极大的优势,但是通信速度较慢,只能简单地实现单链路的连接,功能并不完善。 开发一款价格低廉、性能优越的网关设备是智能电网建设过程中一个必要的需求。因此提出了一个在STM32F107芯片上实现Modbus-Modbus TCP/IP协议转化的解决方案,能在成本上和性能上同时满足需求。1 Modbus协议 Modbus是Modicon(现为施耐德电气公司的一个品牌)在1979年开发的一项在OSI模型第7层的应用层报文传输协议,在过去几十年已被大量地应用于工业控制领域的开放的、标准的、免费的网络通信协议[4]。它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信:在串行链路上取决于TIA/EIA标准(232-F和485-A),在TCP/IP上取决于 IETF标准(RFC793和RFC791)。1.1 串行链路的通信 Modbus在串行链路采用主/从方式的通信协议,即Modbus通信由主站发起,从站在未收到主站请求时,不能主动发起数据。Modbus在串行链路上的通信帧包括地址域、功能域、数据域和校验域。 Modbus在串行链路上的通信帧分为RTU和ASCII两种模式[5],其中RTU模式通信帧中的8 bit数据包括2个4 bit十六进制字符,相对于ASCII模式,在表达相同的数据信息时RTU需要的位数较少,在相同的传输速率下RTU有更高的数据吞吐量。 在RTU传输模式中,用3.5个字符的时间间隔将报文帧区分开,帧内两个字符之间的间隔必须小于1.5个字符时间,当传输速率大于19 200 b/s时,可以采用1.750 ms的固定值替代3.5个字符时间作为帧间的延迟时间,用750 ?滋s替代1.5个字符时间作为字符超时时间。1.2 Modbus TCP/IP应用数据单元 在基于TCP/IP的Modbus中,每个应用数据单元的结构包含Modbus应用报文头、功能码域和数据域。其中MBAP(Modbus Application Protocol Header)的报文头长度为7 B,该报文的字段如表1所示。1.3 Modbus串行链路和Modbus TCP/IP转换 要使在串行链路传输的Modbus数据包能在以太网进行无阻碍、准确的传输,必须对串行链路上的数据包或以太网数据包进行处理、转化。一般的办法是以TCP/IP协议为基础,将数据量较小的串行链路上的数据包封装在TCP/IP帧中。由于Modbus在串行链路中的帧格式不同于在TCP/IP中传输的帧格式,因此在进行TCP/IP封装前必须将Modbus在串行链路中的帧格式转换成Modbus TCP/IP应用数据单元结构。同样地,对于在以太网上输出的Modbus数据包,必须先对TCP/IP数据包进行拆包,之后再对数据内容进行帧格式转换,将Modbus TCP/IP的ADU转换成串行链路上的ADU,最后才能在串行链路上进行通信。2 系统硬件电路 STM32系列芯片是意法半导体专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M3内核芯片。其中STM32F107互连型系列微控制器内部集成高性能以太网模块,支持通过以太网进行数据的收发。基于STM32F107的硬件电路如图1所示。 整个系统电路包含STM32F107最小单元、以太网接口电路、电平转换电路和电源电路四部分。 STM32F107最小系统单元包括复位电路、晶振电路和程序下载电路。晶振电路中,选用25 MHz的无源器件作为系统时钟源,同时通过配置芯片的相关寄存器使系统工作在最高的72 MHz。 在以太网接口电路中由于STM32F107内部已经集成了以太网模块,因此只需要增加一个DP83848物理层芯片并通过RMII连接方式,再接上标准的RJ45接口,就能形成10/100 M以太网电路。 Modbus在串行链路中一般采用RS485通信接口,它是一种差动半双工的通信方式,而STM32F107自带的是USART异步串行通信接口,因此通过SP3485电平转换芯片将STM32F107芯片的USART接口转换成RS485接口,才能与工业设备进行信息通信。 STM32F107等芯片需要的工作电源一般都在3.3 V,而电源变压器输出的电压为5 V,这就需要将输入的5 V电源电压转成3.3 V,用来提供给芯片工作。3 系统软件设计 软件设计部分的关键主要在于&COSII移植、两个事务处理任务和多线程与缓冲区设计。3.1 &COSII移植 &COSII是一种专门为嵌入式设备设计的源代码公开、可移植、可固化、可裁减、抢占式的实时多任务操作系统,自1992年发布以来就获得广泛的使用。在将&COSII移植到STM32的固件平台时,必须对其进行修改、编写。其中主要的内容有:(1)基本配置和定义。包括与编译器相关的数据类型和定义栈的增长方向。(2)编写与处理器相关的函数。包括运行优先级最高的就绪任务函数OSStartHighRdy()、任务优先级切换函数OSCtxSw()、中断级的任务切换函数OSInitCtxSw()和时钟节拍中断服务函数OSTickISR()。(3)编写与操作系统相关的函数。 在&COSII中的OS_CPU_C.C的文件中包含6个与CPU相关的函数,其中在移植中必不可少的任务是堆栈初始化函数OSTaskStkInit()。3.2 事务处理任务 &COSII是一个多任务的实时操作系统,最多可以管理64个任务,根据实际需求创建两个任务: 与以太网通信的TaskModbusTCP任务一:系统开始运行后,任务一处于空闲状态,同时监听以太网的502端口,此端口是Modbus TCP/IP的默认端口;当端口接收到有效数据时,程序对其进行拆包分析后,再经过&COS的邮箱机制将数据发送给任务二,之后任务一进入等待响应状态,同时开启超时响应定时器;当在超时响应时间内接收到邮箱中来自任务二的响应数据时,任务一进入到处理应答状态,对其数据进行打包封装等处理后送至502端口,然后重新进入到空闲状态。至此完成一次正确的Modbus TCP/IP的通信过程。其任务的状态流图如图2所示。 与从站通信的TaskMastertask任务二:系统开始运行后,任务二进入空闲状态;当&COS的邮箱收到数据后,任务二提取邮箱中的数据,首先进行数据有效性分析,然后再对数据添加CRC校验,使数据符合Modbus在串行链路上的通信帧,接着通过RS485接口将数据发送到总线上,同时超时响应定时器开启,任务二进入等待响应状态;若在超时响应时间内接收到从站的响应,则进入应答处理,并对数据进行处理分析。如果数据正确且有效,则通过邮箱发送给任务一,然后进入空闲状态中等待下一次的邮箱数据。其任务的状态流图如图3所示。3.3 多线程与缓冲区 由于工业控制系统的通信速率普遍较低,当数据在现场总线与以太网进行交互时,通信速率受限于工业控制端的速率,采用多线程与存储池相结合的技术来匹配现场总线和以太网的传输速率。即当多线程的类似指令连接时,网关的现场总线端只发送一次指令,将得到的数据放到存储池中,然后再解析给各个线程。4 测试结果 测试中,采用环宇集团的HUM8D-400型和HUM8D-225型塑料外壳智能断路器作为Modbus的从站设备,利用第三方软件Modbus Poll模拟主站设备如图4所示。 对于以太网通信的可靠性的重要参数有:IP包传输延时、IP包的误码率、IP包的丢失率等[6]。然而现场总线的网络性能与以太网有很大的不同,其主要指标包含传输距离、传输速率、丢包率等,同时这些指标随着负载的变化而变化,因此本文对于以太网到现场总线的通信性能从不同的负载和传输速率方面对IP包的响应时间、误码率和丢失率进行测试。其中数据接收准确性测试参数为500 000次数据指令,RS485接口通信距离100 m;响应时间为以太网数据包从发送到接收到响应数据包的整体时间,包括设备的响应时间和数据包在线路的传输时间。单线程测试结果整理后如表2所示。多线程存储池结果整理后如表3所示。 表2与表3的测试结果说明,网关能够很好地保证数据通信的准确性和可靠性。同时响应时间受网关波特率的制约,提高波特率能有效地提高响应时间。同时利用多线程与存储池技术,可以大大减少单线程情况下运行多指令所消耗的时间。 利用STM32所设计的网关不仅能够有效地进行通信,同时对比于目前市场上售价高达数千元的类似设备,仅需要不到百元的成本,大大提高了其推广的可能性。 当前的工业现场设备在通信中基本都能够支持Modbus,通过网关进行数据交互,为远程的遥信提供有力的支持。参考文献[1] 国网能源研究院.2012国内外智能电网发展分析报告[M].北京:中国电力出版社,2012.[2] 尹天文.智能电网用户端[J].低压电器,2012(5):59-64.[3] 何瑞华.我国新一代低压电器发展与展望[J].低压电器,2012(1):1-6.[4] 华镕.从Modbus到透明就绪:施耐德电气工业网络的协议、设计、安装[M].北京:机械工业出版社,2009.[5] Modicon Inc.Modicon Modbus protocol reference guide[EB/OL].[2002-7].www..[6] 李扬继,范宝峰,杨洋.网络性能测量技术分析[J].网络与信息技术,):34-35.
本页面信息由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。
应用与方案分类
&&& 目前,处理器性能的主要衡量指标是时钟

我要回帖

更多关于 stm32f107中文手册 的文章

 

随机推荐