如何使用STM32CubeMX配置ETH

如何使用STM32CubeMX配置ETH,第1张

具体配置过程:
1、打开STM32CubeMX,并选择好相应的芯片。文中的芯片为STM32F207VCT6,选择后如下图:
2、配置RCC时钟、ETH、PA8以及使能LWIP;
由于此处我们的开发板硬件上为RMII方式,因此选择ETH-RMII,若有同志的开发板为MII方式,请参考MII的配置方法,此处只针对RMII;
RCC选择外部时钟源,另外勾选MCO1,软件会自动将PA8配置为MCO1模式,该引脚对于RMII方式很重要,用于为PHY芯片提供50MHz时钟;
使能LWIP;
3、时钟树的相关配置,必须保证MCO1输出为50Mhz,如果这个频率不对会导致PHY芯片无法工作;
我这里因为芯片为207VCT6,为了使MCO1输出为50Mhz,做了PLL倍频参数的一些调整,总体如下:(同志们配置时可根据自己的芯片灵活配置,但需保证MCO1的输出为50Mhz)
4、ETH、LWIP、RCC相关参数设置;
至此,比较重要的都在前面了,但是还有一点仍需要注意,即PA8引脚输出速度,几次不成功都是因为这个引脚没注意。
后续的参数设置可以根据同志们自己的需求分别设置,这里给出我的设置供参考;
ETH参数保持默认,但中断勾选一下;
LWIP参数设置如下:(因为我这里是配置UDP服务器,IP选择静态分配)
5、生成工程,做最后的函数修改;
给生成的工程添加UDP服务器的初始化以及端口绑定等相关函数;
我这里直接将之前的官方例程中的UDP服务器文件加进来,如下:
之后将c文件添加到用户程序,主函数添加Udp的h头文件;如下:(udp文件的具体内容在后面给出)
6、主函数还需要添加一下几个函数,在这里不对函数作用及实现原理讲解,仅做添加说明。
附:udp_echoserver相关文件内容(该文件为官方的示例程序,版权归官方,此处做转载)
udp_echoserverc的内容如下:
/ Includes ------------------------------------------------------------------/
#include "mainh"
#include "lwip/pbufh"
#include "lwip/udph"
#include "lwip/tcph"
#include <stringh>
#include <stdioh>
/ Private typedef -----------------------------------------------------------/
/ Private define ------------------------------------------------------------/
#define UDP_SERVER_PORT 7 / define the UDP local connection port /
#define UDP_CLIENT_PORT 7 / define the UDP remote connection port /
/ Private macro -------------------------------------------------------------/
/ Private variables ---------------------------------------------------------/
/ Private function prototypes -----------------------------------------------/
void udp_echoserver_receive_callback(void arg, struct udp_pcb upcb, struct pbuf p, const ip_addr_t addr, u16_t port);
/ Private functions ---------------------------------------------------------/
/
@brief Initialize the server application
@param None
@retval None
/
void udp_echoserver_init(void)
{
struct udp_pcb upcb;
err_t err;
/ Create a new UDP control block /
upcb = udp_new();
if (upcb)
{
/ Bind the upcb to the UDP_PORT port /
/ Using IP_ADDR_ANY allow the upcb to be used by any local interface /
err = udp_bind(upcb, IP_ADDR_ANY, UDP_SERVER_PORT);
if(err == ERR_OK)
{
/ Set a receive callback for the upcb /
udp_recv(upcb, udp_echoserver_receive_callback, NULL);
}
}
}
/
@brief This function is called when an UDP datagrm has been received on the port UDP_PORT
@param arg user supplied argument (udp_pcbrecv_arg)
@param pcb the udp_pcb which received data
@param p the packet buffer that was received
@param addr the remote IP address from which the packet was received
@param port the remote port from which the packet was received
@retval None
/
void udp_echoserver_receive_callback(void arg, struct udp_pcb upcb, struct pbuf p, const ip_addr_t addr, u16_t port)
{
/ Connect to the remote client /
udp_connect(upcb, addr, UDP_CLIENT_PORT);
/ Tell the client that we have accepted it /
udp_send(upcb, p);
/ free the UDP connection, so we can accept new clients /
udp_disconnect(upcb);
/ Free the p buffer /
pbuf_free(p);
}
udp_echoserverh的内容如下:
#ifndef __ECHO_H__
#define __ECHO_H__
void udp_echoserver_init(void);
#endif / __MINIMAL_ECHO_H /
7、至此,所有的工作完成,编译工程,下载至开发板。由于udp_echoserver中绑定的端口号为7,这里我们通过测试工具测试网络的功能,

CPU Intel 酷睿 i7 至尊版 980X 7999
主板 技嘉 GA-X58A-UD9 4588
内存 威刚 8GB DDR3 1600G(游戏威龙双通道) 2共16G 5000
硬盘 镁光RealSSD C300 SATA 6Gbps 256GB 最快的SSD 固态硬盘 5500
显卡 蓝宝石 HD5870 2GB GDDR5 PCIE(Eyefinity 6 Edition) 3999
光驱 先锋 DVR-218CHV 219
LCD LG W2486L 2199
机箱 Tt ARMOR(VA8000BWS)(钢) 1200 (这个机箱是能放进长312mm的HD5970的)
电源 银欣 SST-ST1500 3300 (额定1500瓦电源)
键鼠装 罗技 MK320 24GHz舒适型键鼠套装 199
散热器 酷冷至尊 水冷魔方(RL-M4A-E7E1-GP) 705 (CPU和显卡水冷散热器)

合计金额:34900 元
WIN7是无法使用双CPU的,除非换为Win2008服务器版本才行。
技嘉这个主板是支持Sata30的,华硕 P6T7 WS只支持Sata20,上固态硬盘等于白搭。
蓝宝石 HD5870 2GB GDDR5 PCIE(Eyefinity 6 Edition)支持6屏环幕输出。
如果需要更高的显卡(因为不知道你运行的图像和数据是什么程度),可以上HD5970 4G,蓝宝石 HD5970 4G TOXIC Edition(毒药版)或者XFX 5970 4GB EF 6 Black Edition Limited,这个不好买,6000块吧。
显示器是LG自己的面板,质量可以放心。
4G内存是有的,目前已知的就威刚的DDR3 8G套装(两根),但不好买,需要你就脸喜135-2075-6039 或者130-5124-4375。技嘉那主板6插槽,支持24G。

1 GSM网中,一个S2/2/2的基站最多可同时容纳42个无线用户的通话。2 移动通信系统目前采用_FDMA_、_TDMA_和_CDMA_三种多址方式,GSM采用FDMA/TDMA(或TDMA)多址方式。3 GSM系统按照功能分为MSS、 BSS和 MS 等三部分。 4 无线接口上CCCH包括 PCH 、AGCH 、RACH三类信道。5 常见的基站组网方式有 星 形、 链 形、 树 形 和环形灵活组网。6 在GSM系统中,移动台(MS)与基站(BTS)间传输的数字话音信号速率为 13 Kbit/s, 移动交换局(MSC)与基站间传输的数字话音信号速率为 64 Kbit/s,因此在BSS 与MSC之间需增加码型变换设备。7 分集技术是对付快衰落的有效方法,在众多的分集技术中,我们目前在市区最常用的是__空间分集__。在郊区最常用的是 极化分集 。8 切换一般是指MS在 通话 状态(空闲、通话)下由于位置改变而要进行的行为。9 在GSM网中,一个2M最大能带 15 个载频。10 数字蜂窝PLMN可提供的业务分为基本业务和补充业务。 二、判断题:1 如果手机没有SIM卡,就不能进行任何呼叫了。 (错误)2 HLR中存储着移动用户识别号码、访问能力、用户类别和补充业务等数据。(正确)3 MSC寻呼被叫用户时,一定是在整个VLR范围发送寻呼命令。 (错误) 4 移动用户发起位置更新时,并非每次都由VLR分配新的TMSI。 (正确)5 GSM900/GSM1800双频系统可以共用交换子系统和基站控制器,还可以共基站。(正确)6 GSM网个人鉴权密钥Kc存放在仅存放在HLR/AUC 里。 (错误)7 TCH与SACCH组合时51帧为一复帧,控制信道组合时26帧构成一复帧。 ( 错误 )8 GSM蜂窝小区的覆盖半径在设计时,即使把功率输出调至最大,地形再平坦,其覆盖范围也不可能超过35公里。(正确) 9 在关机注册中,手机只有受到系统证实消息才能关机 (错误)10 在空闲状态时,可能进行软切换 (正确)11 天馈线系统的驻波比要大于14 (正确)三、选择题:1、下面哪些信道类型属于控制信道 A、C、D A、AGCH B、TCH/F C、FCCH D、SACCH2、一个S2/2/2的基站最多同时可容纳多少个无线用户在通话? B A、36 B、42 C、 48 D、 643、天馈系统驻波比变差的可能原因有:A、B、C、D A接头没有接好B 接头密封不好导致进水C天馈避雷器驻波大D馈线某处有折损5、以下哪些措施是GSM系统用来提高频谱效率的( 1、2、4 ) 1)跳频 2)DTX 3)信道编码 4)功率控制6、以下属于双向信道的是( 1 ) 1)SACCH 2)AGCH 3)BCCH 7、上行链路的测量报告是在( 3 )上传送的: 1)SDCCH 2)RACH 3)SACCH 4)FACCH8、西门子MSC可以和MOTOROLA的BSC互连的原因是因为存在标准的( 1 )接口:1)A 2)B 3)C 4)D9、掉话与切换失败有那些共同的可能原因: abcdA 干扰程度较高 B 硬件有故障 C 天馈线联接方向错误D 越区 10、绝大多数情况下,基于小区拥塞的切换HOTRAFFIC是:bA 服务小区的中心的手机用户切换到其他小区上,以缓解拥塞;B 服务小区的边沿的手机用户切换到其他小区上,以缓解拥塞;C 将服务小区中新的提出信道占用请求的用户切换到其他小区上,以缓解拥塞。11、处理切换失败的思路: abcdA 查干扰源 B 排除可能的硬件故障 C 减少小区间的交叉覆盖区 D 排除设计上的不足(有同频同BISC/同频小区间互为邻小区) 蜂窝的切换失败的处理: eA 调整频率及BSIC设计 B 调整邻小区的定义 C 查找室内分布系统的问题 D 切换门限的调节 E 以上均可以11、MS对目标小区进行重选时,不需要核对的信息是: dA cro B Cell bar C Location Area D Time advance12、加快切换速度可以: bcdA 切换成功率就会下降,B 适当减少掉话,C 切换量会增加,D BSC负荷会增加13、掉话的原因: abcA 干扰程度较高 B 硬件有故障 C 天馈线联接方向错误14、处理掉话的思路: abcdA 查干扰源 B 排除可能的硬件故障 C 减少或增加小区间的交叉覆盖区 D 查天线的连接15、LAC区设置不当而导致的位置更新过多,手机可能会有什么现象:dA 手机有信号,被叫录音提示不在服务区B 手机有信号,无法作被叫C 手机信号不稳D 以上全是16、小区的信号很强但用户不能起呼(可以切换进入)的原因:dA 有强外部干扰 B 小区未在交换中定义 C 手机制式与GSM协议不匹配(如未升级的某些手机在开通DCS1800的区域)D 小区未定义SDCCH信道。20、位置更新中利用的逻辑信道是哪个:bA,TCH B,SDCCH C,SACCH D,FACCH21、解决位置更新过多的方法有:abdA,重新规划位置区 B,位置区边界尽量避开小区重选频繁的地段C,给边界处的小区多配置信令信道 D,修改CellReselectHysteresis参数22、GSM网络采用900/1800MHz频段,其中移动台发、基站收为:BA 908-914MHz B 909-915MHz C 910-916MHz 25、当移动用户使用分组数据业务的时候,需要给用户分配IP地址。与核心网分组部分有关的设备也应当分配IP地址,例如:A CA BSC 、PCF B PDSN、RADIUS服务器和HLR C DNS服务器、防火墙和各种应用服务器 27、GSM/CDMA网内主叫号码传递原则规定中,正确的是:A CA网内话路接续过程中,原则上不对主叫号码做变换 B GSM/CDMA用户做主叫时,在网内主叫号码格式采用国际有效号码 C国内其他网的主叫号码在接入联通网的GMSC时变为标准格式,并在网内进行传送28、下面那些论述是错误的:ABCA,鉴权过程在每次通话前或位置更新前均必定会发生。B,Ciphering过程在每次通话前或位置更新前均必定会发生。C,TMSI再分配过程在每次通话前或位置更新前均必定会发生。D,交换中可以定义使鉴权过程, Ciphering过程,TMSI再分配过程使他们并非每次都发生。30、手机正在通话状态下,它切换进入了一个新的位置区中的小区,那么: C A,它会通话过程中进行位置更新。B,它会在下次跨LAC区时进行位置更新。C,它会在通话结束后马上进行位置更新。31、手机正常关机后,下列那些情况是正确的: C A,系统仍旧会通过PAGING信道对它发出PAGING请求,虽然手机已经收不到了。B,短消息被排队到数据库中,如果在用户开机前还未被更新掉,短消息也不能发送到用户。C,其他用户对该手机的呼叫请求会被拒绝。D,发给它的短消息肯定会丢失。32、下列那些描述是正确的: D A,每次位置更新均需牵入HLR。B,位置更新均发生在不同的VLR上。C,几类位置更新的优先顺序是一样的。D,每次位置更新中均要改动用户数据的存放位置或指引位置。33、下列哪种技术不属于抵抗多径衰落现象: b a) 信道编码 b) DTX c) 跳频 d)交织34、TMSI再分配的主要目的是: A A,防盗打 B,加密 C,漫游 D,IMSI数量不够时的补充。35、解决位置更新过多的方法有: ABD A,重新规划位置区 B,位置区边界尽量避开小区重选频繁的地段C,给边界处的小区多配置信令信道 D,修改CellReselectHysteresis参数 四、问答题1、请列出切换失败的几种原因(请至少列出三种)(1) 硬件问题(例如时钟板出了问题,无法同步)(2) 原小区存在干扰导致无法解码HANDOVER COMMAND 的信息;目标小区存在干扰(3) 孤岛效应(同BCCH,BSIC)(4) 要切入的目标小区信道资源短缺(5) 恶劣的无线条件导致MS无法收到原小区的切换命令或无法占用目标小区所指配的信道(恶劣的无线条件往往是由小区之间覆盖重叠较少引起)(6) 覆盖问题:目标小区与源小区没有足够的重叠区域(7) 由于天线受到阻挡或同一小区的两根天线覆盖不均匀导致(8) 直放站放大了噪声(9) 参数设置问题:如T3103设置过小,导致MS没来得及占用上目标小区的信道(10) A接口负荷过大产生拥塞,导致MSC内或MSC之间传送切换请求和切换命令时无时隙可用。MSC的LAC表定义不全。 2、移动台为空闲模式下,移动台接收到小区1和小区2的信号电平如下:AV_RXLEV = 26 in cell 1 , AV_RXLEV = 20 in cell 2
具体参数如下:小区 1:
TXPWR_MAX_CCH = 39 dBm RXLEV_ACCESS_MIN = 20 CELL_RESELECT_HYSTERESIS = 4dB

小区2:
TXPWR_MAX_CCH = 33 dBm RXLEV_ACCESS_MIN = 14
MS是否执行小区选择a) 如果是 phase 1 MS,小区1和小区2属于同一个位置区b) 如果是 phase 1 MS ,小区1和小区2不属于同一个位置区提供以下信息:C1 = AV_RXLEV - ACCESS_MIN - Max (0, MS_TXPWR_MAX_CCH - P)MS GSM900 Phase 1, power class 3 = 37 dBm CELL 1:C1=26-20-2=4CELL 2::C1=20-14=6C1(CELL2)>C1(CELL1)进行小区重选不同LAC:当C1(CELL2)〉C1(CELL1)+ CELL_RESELECT_HYSTERESIS时,才进行小区重选 3、如果发现一个BS240基站宕机,而电源是好的,重新开关基站后发现基站仍然无法正常工作,试图连接LMT也未能成功(假设LMT是好的),请分析一下,一般可能是什么原因导致如此故障,并采取何措施进行恢复。应为COBA负责LMT的连接功能,可能COBA损坏或备板损坏,需要更换COBA进行恢复; 4、BS240基站配置成8/8/8,硬件包括一个基本机架和两个扩展机架。在开通过程中,发现三个机架CU模块的创建很顺利,但在创建扩展机架的DUAMCO时,总是不成功。无论尝试多少次,系统是中提示DUAMCO的状态是“not installed”。现假设机架的备板没有问题,机架间相连的电缆也没有问题。请解释可能的原因。ACT故障合路器损坏CAN BUS故障COBA或COSA隐性故障合路器背板故障COBA合COSA背板故障机柜内部连线是否紧密 其实网上有很多呢

1iMac 一体机 适用于普通家庭用户
2Macbook 适用于普通对笔记本要求不高的用户
3Macbook Pro 适用于对笔记本性能有一定要求的用户
4Macbook Air 适用于对性能要求不高,但对便携要求极高的用户
5MAC MINI 适用于普通对性能要求不高,特别是想体验苹果的初级用户
5MAC PRO 适用于对电脑性能要求极高的专业用户
看,所有机子都适合,玩大型游戏,换个PC机吧。
LED显示器 这只是个显示器,算苹果电脑吗?

容量的实际计算是1024进制,厂商算法是1000进制,因此标称容量为电脑识别容量的93%多一点点,存储设备生产厂商都是如此
MLC颗粒的容量是2的整倍数,不过SSD由于损耗平衡和溢出缓存,需要保留容量,120G的SSD,MLC的总容量是128G,容量换算上剩余的7%和多出来的8G分别作为损耗平衡和溢出缓存,这是保证SSD的性能和寿命所必须的,至少使用的颗粒总容量是128G不会错,在欧美也是这样,这种诉讼赢得可能性很小,毕竟这么做在欧美也是被认可的
====================分割下=====================
我想你可能是有一点点误会
严格地说,KB、MB、GB、TB都是10进制下的缩写,相邻单位是1000进制,其中的KMGT分别代表kilo、mega、giga、tera,属于国际单位制词头,在使用的国家的法定值就是1000,1000000,依此类推,1KB=1024Byte,1MB=1024KB之类的写法虽然一般被认可,但是属于不符合规范的写法,严格地说应当写作1KiB=1024Byte,1MiB=1024KiB
而计算机上使用的的1024进制的应当写作KiB MiB GiB TiB,前缀是Ki Mi Gi,也就是在1000进制的前缀后加上小写的i,是kibi mebi gibi tebi,这才是规范的写法
但是有时候会用GB代替GiB,也就是一般来说需要写GiB的场合写GB也不认为是错的
最早以前是没有Ki,Mi之类的说法,那时候K M G T也没有1024进制的说法,后来因为计算机使用的是2进制数,英语的10进制计数方式是3位3位的断开,1000进制要表达计算机的2进制数很困难,于是就开始在计算机领域将KMGT变成1024进制,但是这个做法并没有任何的标准规范进行约束,因此非常混乱,比如144MB的软盘,1MB既不是1024×1024,也不是1000×1000,而是1024×1000,在当时有的个人和组织按1024算,有的按1000算,还有的看情况混着算,这就造成了单位的混乱
后来ICE(国际电工委员会)制定了一个标准,引入Ki之类的前缀进行二进制计数,这种方式得到了广泛的认可,最先被美国的nist认可,目前还有电气电子工程师学会的IEEE1541,欧洲联盟的一致性文件HD 60027-2:2003-03都明确肯定了这种二进制前缀
当然也有一些喜欢自己搞一套的厂商,还在使用国际单位制前缀来表示二进制,比如Microsoft,毕竟这种容易引起混乱的表示法在今天很讨厌,却不算是错误
国际电工委员会(IEC)成立于1906年,至今已有90多年的历史。它是世界上成立最早的国际性电工标准化机构,负责有关电气工程和电子工程领域中的国际标准化工作。在信息技术方面ISO与 国际电工委员会IEC成立了联合技术委员会(JTC1)负责制订信息技术领域中的国际标准。
IEC目前至少有60个成员国,包括了中国,美国和欧洲的大部分发达国家,中国是1988年起改为以国家技术监督局的名义参加IEC的工作,在制定二进制磁头标准的时候,中国已经是IEC成员国了
由于G是国际单位制前缀,GB只要严格遵守了国际单位制换算后的值,就不算欺诈(严格地说这才是规范的计算方式,GB使用1024计算反而不规范),在中国千米表示为km,千克表示为kg,都是使用国际单位制
在对消费者权益有着更好的保护的美国和欧盟,都认可存储设备生产厂商的1000进制,在国际标准单位制使用国,同时也是IEC成员国的中国进行这种维权,成功的可能性几乎没有,我个人反而希望能够立法,使国际单位制词头只作为1000进制,二进制词头1024进制的做法,这样才能有效的避免混乱,否则见到单位还要联系上下文来理解,甚至144MB软盘的1024×1000Byte的做法也不算错,有的时候确实让人很痛苦
=====================继续分割========================
提问的时候请注意文明用语,我只是个小小的程序员,不是造SSD的厂商,和你没有利益冲突
如果你索赔成功,那么我们还能跟风索赔,你索赔成功对厂商有害对我有利,我没必要找借口忽悠你,我只是根据所学的知识和技术文档作出自己的判断而已
你要说容量,我就跟你说容量
你理解的是实际容量小于标称容量,因此厂商侵犯了你的合法权益
你的理解要成立有一个前提,那就是G代表的是1024而不是1000,因此问题可以转化为如何证明G在这种场合下不能代表1000,只能代表1024
目前你唯一的证据是windows显示的容量,但是如果你使用linux系统,你就会发现数字没变,但是单位变成了GiB
标称120GB,实际使用的nand颗粒的总容量按照1024进位计算,达到了128GB,比标称的120GB多了8GB,从用料上说没有任何虚标
首先按照1000进制计算,保留下了大约7%的空间不给用户直接使用
剩下的93%容量,按照1000进制计算是128GB,再留下8GB不给用户直接使用
这两部分保留下的容量是为了做溢出缓存和损耗平衡的
虽然这部分容量你不能直接使用,但是你间接的都用上了,而剩下的部分按照国际单位制计算,还是有120GB,如果没有任何保留容量,让你能完全使用128GiB,那么SSD将会变成性能低下容易损坏的垃圾
如果你认为1GB=1024MB,那你必须找到相关的规定,证明1GB的法定值或者公认值是1024MB,这就必须要有国家标准,行业标准或者是国际标准,这点我说的不算,你说的也不算
,标准说的算
关于容量,在中国没有相关的国家标准,不但没有强制性标准,连推荐性和指导性的标准都没有,因此这种容量标称法没有违反任何中国的法律法规,而世界上所有的硬盘厂商都是这么标称的,自然也不能说不符合行业标准
ICE的60027-2标准明确说明了国际单位制前缀不可替代二进制单位制前缀,这份标准制定与1999年,而中国是1988年起改为以国家技术监督局的名义参加IEC的工作,至于国家质监局是干什么的就不用我介绍了吧
目前的国际标准有1999年的IEC 60027-2,2008年ICE/ISO的80000-13:2008,还有IEEE1541
ICE,ISO,IEEE三大国际标准都明确说明了GB和GiB的不同,Gi是1024而G是1000
再说一次KMG是国际单位制,相邻的是1000进制,中国是国际单位制使用国,并且中国国家标定的非国际单位制单位不包括KMGT等国际单位制前缀的1024进制用法,因此这种用法在中国和世界上的大部分地区都是没有法律依据的,同时也是不符合标准的
综上所述,G不能代表1000只能代表1024的说法我没有找到任何相关的标准(包括中国国家强制性标准,推荐性标准和指导性标准,以及国际标准),目前也就剩下微软这么一个巨头还在使用古老的国际单位制前缀来表示1024
再次说明,微软从来都爱不理国际标准,自己另搞一套,在这点上不符合标准的是微软,想用windows中显示的容量作为证据,证明错的是存储设备生产厂商,我不认为相关部门最终会认可这种说法 ,存储器厂商一直使用1000进制来计算的, *** 作系统制造商过去一直是以1024来计算,比如苹果的iphone4,卖的时候按照1000计算, *** 作系统还是按照1024计算,同一家厂商也会出现2种计算方式,不过苹果在官网说明过,而linux已经改用二进制前缀了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13430578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-04
下一篇 2023-08-04

发表评论

登录后才能评论

评论列表(0条)

保存