完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
VI已告一段落,RM905的问题也解决了,这周开始学习EK-STM32F的开发板,从零开始。以前没玩过这板子,手上除了这块开发板和一张ST官方的光盘外,别无资源,连标配的串口线和USB线都没,真得从零开始!
先熟悉一下开发板的硬件,它的MCU是ST公司的STM32F103VB,核心属于ARM Coretex M3系列,板载了ULINK-II仿真器,外围接口也很丰富,包括两个串口、CAN口、LCD、SD、USB等,板子做得很不错,据说促销时才卖199RMB,相当超值。 由于标配的资源都没了,所以先在网上一阵狂搜,包括开发环境、开发板原理图和配套演示程序、芯片的Datasheet等,基本上想要的都载到了。 先说开发环境的安装。我先后安装了RVMDK、IAR5.2,但发现这两款IDE都不支持板载的仿真器,最后安装IAR4.42的版本,据说它能支持EK-STM32F板载的仿真器,事实证明,确实如此。安装IAR时碰到如下几个问题: 1. 安装文件解压缩时,提示C盘空间不足,事实上C盘还有nG可用空间。原因是系统的环境变量设置有问题,我将TMP目录设置到D盘了,改回C盘就没问题。 2. 安装IAR4.42,使用Keygen时须要注意,输入的十六进制的ID号必须大写,开始我没注意,用小写生成了一堆KEY,试了N个后,终于安装通过,结果编译时提示Licence有问题。Licence Manager也不管用,后来卸了重装,用大写的ID号生成的KEY,就没有问题了。 开发环境的熟悉,比较顺利。与ADS不同的是,IAR在设置中,需要选择MCU类型, IAR无须在IDE中设置RO Base、RW Base等信息,它用xcf配置文件完成这些配置。 支持板载仿真器的配置,也比较简单,具体设置如下图所示,首先在Debugger中选择第三方驱动, 然后在第三方驱动中,选择STM32的驱动程序, 1 void ScrollString(char *str); 2 void ScrollString(char *str) 3 { 4 int i = 4; 5 int dir = 0; 6 7 while(*str++) 8 { 9 write_string(str); 10 delay(); 11 12 if(!dir) 13 { 14 GPIO_SetBits(GPIOC, 1《《i++); 15 if(i==8) 16 dir = 1; 17 } 18 else 19 { 20 GPIO_ResetBits(GPIOC, 1《《i--); 21 if(i==3) 22 dir = 0; 23 } 24 } 25 } 26 开发环境配置完成后,运行了万利提供的几个Sample,LCD、ADC和USART的。LCD、ADC运行没有问题,USART始终没过。折腾了半天,最后也没弄明白。原理图上使用的是PD5、6,但MCU 的Datasheet中PD5、6并不用作USART,难道是用GPIO模拟?但从代码中看起来,它就是把PD5、6当作USART2来用的。 简单说一下这几个Sample,LCD代码中原来的显示部分有点怪,修改如下: 《img al widt heigh alig》 Code 1 void ScrollString(char *str); 2 void ScrollString(char *str) 3 { 4 int i = 4; 5 int dir = 0; 6 7 while(*str++) 8 { 9 write_string(str); 10 delay(); 11 12 if(!dir) 13 { 14 GPIO_SetBits(GPIOC, 1《《i++); 15 if(i==8) 16 dir = 1; 17 } 18 else 19 { 20 GPIO_ResetBits(GPIOC, 1《《i--); 21 if(i==3) 22 dir = 0; 23 } 24 } 25 } 26 ring(char *str); 2 void ScrollString(char *str) 3 { 4 int i = 4; 5 int dir = 0; 6 7 while(*str++) 8 { 9 write_string(str); 10 delay(); 11 12 if(!dir) 13 { 14 GPIO_SetBits(GPIOC, 1《《i++); 15 if(i==8) 16 dir = 1; 17 } 18 else 19 { 20 GPIO_ResetBits(GPIOC, 1《《i--); 21 if(i==3) 22 dir = 0; 23 } 24 } 25 } 26 主函数中调用如下: 《img al widt heigh alig》 Code 1 while(1) 2 { 3 ScrollString(“EK-STM32F HELLO WORLD 2008-11-11”); 4 } 5 ADC的Sample中,也对显示做了修改,并且增加了ADC Value对LED的控制,代码如下: 《img al widt heigh alig》 Code 1 sprintf(display,“%04X”,value); 2 write_string(display); 3 delay(); 4 5 i = value/0x300; 6 i = 1《《i; 7 i--; 8 i = i《《4; 9 GPIO_SetBits(GPIOC,i); 10 GPIO_ResetBits(GPIOC,~i); 11 USART的实验没有跑通,后来修改成UART0和PC串口通信,实现回发接收到的数据。需要注意的是UASRT的配置,如果数据位配置成9位,板子发送没有问题,但接收会乱码,数据位配置成8位,收发正常。另外,万利的UART0和PC的串口使用两头孔的交叉线相连,因为我没有标配的线,先用示波器测UART0,确定3引脚为TXD,然后用3根串口线接成了一个两头孔的交叉线,测试通过。 开发环境基本了解了,接下来认识一下Coretex M3和STM32F103VB。先说STM32F103VB吧,因为没太多好说的,MCU的Datasheet中先说指标很强,然后就介绍产品的电气特性,基本没有关于寄存器的介绍,不像2410和270的文档讲的很仔细。整篇文档中,一张memory map的图应该是最有用的。当然,ST提供了另外的文档和Sample,说明如何使用各硬件。FirmwareLib基本涵盖了所有硬件的代码封装,方便应用程序的开发人员使用。 下面介绍一下Coretex M3。Coretex M3,很好,很先进。它是ARMv7的架构,注意,不是ARM7!ARM7是ARMv4的内核,S3C2410和PXA270等也都属于ARMv4的ARM9。Coretex是ARM公司继ARM11之后推出的最新的ARM内核,只不过没叫ARM12而已。 Coretex M3性能强劲。这一点应该得益于它全新的指令集。Coretex摒弃了ARM+THUMB指令集结构,而采用了THUMB2指令集。只有放下包袱,才能走的更远。采用新的指令集提高了代码密度,增加了性能,也无须象ARMv4中需要处理ARM和Thumb之间的切换。 Coretex M3实时性好。这一点应该得益于它新的中断处理机制。Coretex M3中不再有FIQ,它采用了超多的可嵌套的IRQ。中断控制器在内核层面上,比传统芯片级的中断控制器更先进。 Coretex M3使用方便。虽然它采用了全新的指令集,但对于应用程序开发人员来说,并没有增加工作量,用新的编译器即可。开发方式也跟传统的单片机并无太大区别。Coretex M3就是一个具有ARM内核的32位单片机,并且它在内核中加入了Debug的支持。 Coretex M3价格便宜。这是它最大的利好。现在金融危机闹这么凶,极具性价比的的往往比较抢手。也许过两年,单片机市场将由它来主宰。价格上,它比8位、16位的单片机贵不了多少,但接口丰富,性能强劲,在很多场合比16位的单片机有更好的表现。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
568浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:50 , Processed in 0.764705 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号