tag 标签: stm32f103zet6

相关博文
  • 热度 12
    2013-3-13 14:02
    2921 次阅读|
    0 个评论
       本人2年前写的《STM32不完全手册》深受广大网友好评,感谢大家支持,并感谢大家对《STM32不完全手册》提出的修改意见。2年的时间过去了,我没有停顿,MiniSTM32开发板承蒙大家厚爱,目前已经有超过10000的人群在使用,但是MiniSTM32功能相对较为简单,所以我在2年的时间里面,设计了一款功能相对强大一点的STM32开发板:战舰STM32开发板,并编写了新的教程:《STM32开发指南》,该指南分为寄存器和库函数两个版本,并都将由北航出版社出版,书名是:《原子教你玩STM32》,今年5月份左右,即可和大家见面了。     接下来,我将与大家慢慢分享《STM32开发指南》,每天发布一章/一个实验,欢迎大家讨论,我将尽量为大家解答各种疑问,并欢迎对《STM32开发指南》不完善/不正确的地方提出修改意见,先谢谢大家了。   官方店铺1:http://shop62103354.taobao.com 官方店铺2:http://shop62057469.taobao.com 技术论坛:www.openedv.com     前言     Cortex-M3采用ARM V7构架,不仅支持Thumb-2指令集,而且拥有很多新特性。较之ARM7 TDMI,Cortex-M3拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。     国内Cortex-M3市场,ST(意法半导体)公司的STM32无疑是最大赢家,作为Cortex-M3内核最先尝蟹的两个公司(另一个是Luminary(流明))之一,ST无论是在市场占有率,还是在技术支持方面,都是远超其他对手。在Cortex-M3芯片的选择上,STM32无疑是大家的首选。     现在ST公司又推出了STM32F0系列Cortex M0芯片以及STM32F4系列Coretx M4芯片,这两种芯片都已经量产,而且可以比较方便的购买到,但是本指南,我们只讨论Cortex M3,(因为这个现在是性价比最高的 ^_^)有兴趣的读者可以自行了解一下。 STM32的优异性体现在如下几个方面: 1,  超低的价格。以8位机的价格,得到32位机,是STM32最大的优势。 2,  超多的外设。STM32拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等众多外设及功能,具有极高的集成度。 3,  丰富的型号。STM32仅M3内核就拥有F100、F101、F102、F103、F105、F107、F207、F217等8个系列上百种型号,具有QFN、LQFP、BGA等封装可供选择。同时STM32还推出了STM32L和STM32W等超低功耗和无线应用型的M3芯片。 4,  优异的实时性能。84个中断,16级可编程优先级,并且所有的引脚都可以作为中断输入。 5,  杰出的功耗控制。STM32各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。 6,  极低的开发成本。STM32的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持SWD和JTAG两种调试口。SWD调试可以为你的设计带来跟多的方便,只需要2个IO口,即可实现仿真调试。 学习STM32有两份不错的中文资料: 《STM32参考手册》中文版V10.0 《Cortex-M3权威指南》中文版(宋岩 译)     前者是ST官方针对STM32的一份通用参考资料,内容翔实,但是没有实例,也没有对Cortex-M3构架进行多少介绍(估计ST是把读者都当成一个Cortex-M3熟悉者来写的),读者只能根据自己对书本的理解来编写相关代码。后者是专门介绍Cortex-M3构架的书,有简短的实例,但没有专门针对STM32的介绍。所以,在学习STM32的时候,必须结合这份资料来看。     STM32拥有非常多的寄存器,其中断管理更是复杂,对于新手来说,看ST提供的库函数虽然可以很好的使用,但是没法深入理解,一旦出错,查问题就非常痛苦了。另外,库函数在效率和代码量上面都是不如直接操作寄存器的。     本指南将结合《STM32参考手册》和《Cortex-M3权威指南》两者的优点,并从寄存器级别出发,深入浅出,向读者展示STM32的各种功能。总共配有56个实例,基本上每个实例在均配有软硬件设计,在介绍完软硬件之后,马上附上实例代码,并带有详细注释及说明,让读者快速理解代码。     这些实例涵盖了STM32的绝大部分内部资源,并且提供很多实用级别的程序,如:内存管理、拼音输入法、手写识别、图片解码、IAP等。所有实例在MDK3.80A编译器下编译通过,大家只需下载程序到ALIENTEK战舰STM32开发板,即可验证实验。     不管你是一个STM32初学者,还是一个老手,本指南都非常适合。尤其对于初学者,本指南将手把手的教你如何使用MDK,包括新建工程、编译、仿真、下载调试等一系列步骤,让你轻松上手。本指南不适用于想通过库函数学习STM32的读者,因为本指南的绝大部分内容都是直接操作STM32寄存器的,如果你想通过库函数学习STM32,建议直接看MDK安装目录下的例程就可以了。     本指南的实验平台是ALIENTEK 战舰STM32开发板,有这款开发板的朋友则直接可以拿本指南配套的光盘上的例程在开发板上运行、验证。而没有这款开发板而又想要的朋友,可以上淘宝购买。当然你如果有了一款自己的开发板,而又不想再买,也是可以的,只要你的板子上有ALIENTEK 战舰STM32开发板上的相同资源(需要实验用到的),代码一般都是可以通用的,你需要做的就只是把底层的驱动函数(一般是IO操作)稍做修改,使之适合你的开发板即可。     俗话说:人无完人。本指南也不例外,在编写过程中虽然得到了不少网友的指正,但难免不会再有出错的地方,如果大家发现指南中有什么错误的地方,还请告诉本人一声,本人邮箱:liujun6037@foxmail.com,也可以去www.openedv.com论坛给我留言。在此先向各位朋友表示真心的感谢。
  • 热度 32
    2013-1-23 15:47
    9940 次阅读|
    8 个评论
    板 子是我自己做的,外扩了flash和大容量pSRAM(4M Byte)。FSMC的片选按照ST3210E-EVAL设计的,使用了ST官方发布的uClinux针对我的板子进行修改。只是苦于ST提供的 bootloader没有源码,为了启动我修改后的uClinux费了不少功夫,最后分析上网搜索linux的启动步骤,自己写了一个 bootloader,顺利的启动了uClinux。虽然还有些小问题,别的不说了先上启动信息(后面有板子的照片) Linux version 2.6.26-uc0 (root@localhost.localdomain) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-46) ) #18 Mon Jan 21 14:36:20 CST 2013 CPU: ARMv7-M Processor revision 1 (ARMv?(11)M) Machine: STM3210E-EVAL SRAM Config: bank @ 0x68000000 (size: 4096KB) - bank @ 0x20000000 (size: 64KB). Ignoring unrecognised tag 0x00000000 Ignoring unrecognised tag 0x00000000 Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 1016 Kernel command line: noinitrd root=mtd1 rootfstype=jffs2 init=/linuxrc console=ttyS0 PID hash table entries: 16 (order: 4, 64 bytes) console enabled Dentry cache hash table entries: 1024 (order: 0, 4096 bytes) Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) Memory: 4MB 0MB = 4MB total Memory: 4052KB available (492K code, 56K data, 8K init) Mount-cache hash table entries: 512 JFFS2 version 2.2. 漏 2001-2006 Red Hat, Inc. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. kobject_add_internal failed for P/ with -EEXIST, don't try to register things with the same name in the same directory. simple-gpio: now handling 16 GPIOs: 0 - 15 ttyS0 at MMIO 0x40013800 (irq = 37) is a STM32 USART1 Port Probed and found the STM3210E-EVAL NOR flash chip Creating 4 MTD partitions on "S29GL064N NOR FLASH": 0x00000000-0x00100000 : "Kernel raw data" 0x00100000-0x00160000 : "rootfs" 0x00160000-0x00190000 : "rawdata" 0x00190000-0x001c0000 : "cramfs_partition" rtc-stm3210e_eval rtc-stm3210e_eval.0: rtc core: registered rtc-stm3210e_eval as rtc0 rtc-stm3210e_eval rtc-stm3210e_eval.0: setting system clock to 1970-01-01 00:00:00 UTC (0) VFS: Mounted root (jffs2 filesystem) readonly. Bad page state in process 'swapper' page:68001040 flags:0x00000000 mapping:00000000 mapcount:1 count:0 Trying to fix it up, but a reboot is needed Backtrace: Bad page state in process 'swapper' page:68001060 flags:0x00000000 mapping:00000000 mapcount:1 count:0 Trying to fix it up, but a reboot is needed Backtrace: Freeing init memory: 8K Mounting proc fs Mounting sysfs Welcome to        ____ _  _       /  __| ||_| _   _| |  | | _ ___   _   _ _    _ | | | | |  | || |  _ \| | | |\ \/ / | |_| | |__| || | | | | |_| |/    \ | ___ \____|_||_|_| |_|\____|\_/\_/ | | |_| For further information check: http://www.uclinux.org/ http://www.st.com/stm32 / #  
  • 热度 23
    2013-1-7 15:03
    7243 次阅读|
    6 个评论
    第一章 实验平台简介       本章,主要向大家简要介绍我们的实验平台:ALIENTEK战舰STM32开发板。通过本章的学习,你将对我们后面使用的实验平台有个大概了解,为后面的学习做铺垫。 本章将分为如下两节: 1.1,ALIENTEK战舰STM32开发板资源初探; 1.2,ALIENTEK战舰STM32开发板资源说明; 1.1 ALIENTEK战舰STM32开发板资源初探     在ALIENTEK 战舰STM32开发板之前,ALIENTEK推出过MiniSTM32开发板,在两年的时间里面,售出8000多套,连续一年多稳居淘宝STM32开发板销量之首。而这款战舰STM32开发板,则是MiniSTM32开发板的超级加强版。下面我们开始介绍战舰STM32开发板。     ALIENTEK战舰STM32开发板的资源图如图1.1.1所示:    图1.1.1 战舰STM32 开发板资源图     从图1.1.1可以看出,ALIENTEK战舰STM32开发板,资源十分丰富,并把STM32F103的内部资源发挥到了极致,基本所有STM32F103的内部资源,都可以在此开发板上验证,同时扩充丰富的接口和功能模块,整个开发板显得十分大气。     开发板的外形尺寸为11.2cm*15.6cm大小,板子的设计充分考虑了人性化设计,并结合广大客户对Mini板提出的改进意见,经过反复修改(在面市之前,硬件就改版了8次之多,目前最新版本为V2.0),最终确了定这样的设计。        ALIENTEK战舰STM32开发板板载资源如下: CPU:STM32F103ZET6,LQFP144,FLASH:512K,SRAM:64K; 外扩SRAM:IS62WV51216,1M字节 外扩SPI FLASH:W25Q64,8M字节 1个电源指示灯(蓝色) 2个状态指示灯(DS0:红色,DS1:绿色) 1个红外接收头,并配备一款小巧的红外遥控器 1个 EEPROM芯片,24C02,容量256字节 1个重力加速度传感器芯片,ADXL345 1个高性能音频编解码芯片,VS1053 1个FM立体声收发芯片,RDA5820 1个2.4G无线模块接口(NRF24L01) 1路CAN接口,采用TJA1050芯片 1路485接口,采用SP3485芯片 1路RS232(串口)接口,采用SP3232芯片 1个PS/2接口,可外接鼠标、键盘 1个游戏手柄接口,可以直接插FC(红白机)游戏手柄 1路数字温湿度传感器接口,支持DS18B20 /DHT11等 1个标准的2.4/2.8/3.5寸LCD接口,支持触摸屏 1个摄像头模块接口 2个OLED模块接口 1个USB串口,可用于程序下载和代码调试(USMART调试) 1个USB SLAVE接口,用于USB通信 1个有源蜂鸣器 1个FM收发天线接口,并配天线 1个RS232/RS485选择接口 1个CAN/USB选择接口 1个串口选择接口 1个SD卡接口(在板子背面,支持SPI/SDIO) 1个SD卡/网络模块选择接口 1个标准的JTAG/SWD调试下载口 1个VS1053的IIS输出接口 1个MIC/LINE IN选择接口 1个录音头(MIC/咪头) 1路立体声音频输出接口 1路立体声录音输入接口 1组多功能端口(DAC/ADC/PWM DAC/AUDIO IN/TPAD) 1组5V电源供应/接入口 1组3.3V电源供应/接入口 1个参考电压设置接口 1个直流电源输入接口(输入电压范围:6~16V) 1个启动模式选择配置接口 1个RTC后备电池座,并带电池 1个复位按钮,可用于复位MCU和LCD 4个功能按钮,其中WK_UP兼具唤醒功能 1个电容触摸按键 1个电源开关,控制整个板的电源 独创的一键下载功能 除晶振占用的IO口外,其余所有IO口全部引出 ALIENTEK战舰STM32开发板的特点包括: 1)  接口丰富。板子提供十来种标准接口,可以方便的进行各种外设的实验和开发。 2)  设计灵活。板上很多资源都可以灵活配置,以满足不同条件下的使用。我们引出了除晶振占用的IO口外的所有IO口,可以极大的方便大家扩展及使用。另外板载一键下载功能,可避免频繁设置B0、B1的麻烦,仅通过1根USB线即可实现STM32的开发。 3)  资源充足。外扩1M字节SRAM和8M字节FLASH,满足大内存需求和大数据存储。板载MP3和FM收发芯片,娱乐学习两不误。板载3D加速度传感器和各种接口芯片,满足各种应用需求。 4)  人性化设计。各个接口都有丝印标注,使用起来一目了然;接口位置设计安排合理,方便顺手。资源搭配合理,物尽其用。 1.2 ALIENTEK战舰STM32开发板资源说明     资源说明部分,我们将分为两个部分说明:硬件资源说明和软件资源说明。 1.2.1硬件资源说明     这里我们首先详细介绍战舰STM32开发板的各个部分(图1.1.1中的标注部分)的硬件资源,我们将按逆时针的顺序依次介绍。 W25Q64 64M FALSH     这是开发板外扩的SPI FLASH芯片,容量为64Mbit,也就是8M字节,可用于存储字库和其他用户数据,满足大容量数据存储要求。当然如果觉得8M字节还不够用,你可以把数据存放在外部SD卡。 IS62WV51216 8M SRAM     这是开发板外扩的SRAM芯片,容量为8M位,也就是1M字节,这样,对大内存需求的应用(比如GUI),就可以很好的实现了。 SD 卡/ 网络模块接口选择接口     这里是一个由3拍排针(在板上标号 为:P10、P11和P12)组成的复合接口,当不用网络模块的时候,这个组合就变成了SD卡的接口选择接口,可以通过跳线帽选择SDIO/SPI(我们默认是设置在SPI接口的)。但是,如果需要网络模块(网络模块接P12),那么SD卡就只能用SDIO模式了。 4.       引出IO 口     这里是一组54个IO口的引出(P5),在它的右侧不远,是另外一组54个IO口的引出(P4),这两组排针引出108个IO,而STM32F103ZET6总共只有112个IO,除去RTC晶振占用的2个IO,还剩下PA9和PA10没有在这里引出(由P6引出)。 CAN/USB 选择接口     这是一个USB/CAN的选择接口(P13),因为STM32的USB和CAN是共用一组IO(PA11和PA12),所以我们通过跳线帽来选择不同的功能,以实现USB/CAN的实验。 JTAG/SWD 接口        这是ALIENTEK战舰STM32开发板板载的20针标准JTAG调试口(JTAG),该JTAG口直接可以和ULINK、JLINK或者STLINK等调试器(仿真器)连接,同时由于STM32支持SWD调试,这个JTAG口也可以用SWD模式来连接。     用标准的JTAG调试,需要占用5个IO口,有些时候,可能造成IO口不够用,而用SWD则只需要2个IO口,大大节约了IO数量,但他们达到的效果是一样的,所以我们强烈建议你的仿真器使用SWD模式! USB 串口/ 串口1     这是USB串口同STM32F103ZET6的串口1进行连接的接口(P6),标号RXD和TXD是USB转串口的2个数据口(对CH340G来说),而PA9(TXD)和PA10(RXD)则是STM32的串口1的两个数据口(复用功能下)。他们通过跳线帽对接,就可以和连接在一起了,从而实现STM32的程序下载以及串口通信。     设计成USB串口,是出于现在电脑上串口正在消失,尤其是笔记本,几乎清一色的没有串口。所以板载了USB串口可以方便大家下载代码和调试。而在板子上并没有直接连接在一起,则是出于使用方便的考虑。这样设计,你可以把ALIENTEK战舰STM32开发板当成一个USB串口,来和其他板子通信,而其他板子的串口,也可以方便地接到ALIENTEK战舰STM32开发板上。 STM32F103ZET6     这是开发板的核心芯片(U5),型号为:STM32F103ZET6。该芯片具有64KB SRAM、512KB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口、1个FSMC接口以及112个通用IO口。 STM32 USB 口     这是开发板板载的一个MiniUSB头(USB),用于STM32与电脑的USB通讯,通过此MiniUSB头,开发板就可以和电脑进行USB通信了。开发板总共板载了2个MiniUSB头,一个用于USB转串口,连接CH340G芯片;另外一个用于STM32内带的USB。     同时开发板可以通过此MiniUSB头供电,板载两个MiniUSB头(不共用),主要是考虑了使用的方便性,以及可以给板子提供更大的电流(两个USB都接上)这两个因素。 10.   后备电池接口     这是STM32后备区域的供电接口,可以用来给STM32的后备区域提供能量,在外部电源断电的时候,维持后备区域数据的存储,以及RTC的运行。 USB 转串口     这是开发板板载的另外一个MiniUSB头(USB_232),用于USB连接CH340G芯片,从而实现USB转串口。同时,此MiniUSB接头也是开发板电源的主要提供口。 OLED/ 摄像头模块接口     这是开发板板载的一个OLED/摄像头模块接口(P8),如果是OLED模块,靠左插即可(右边两个孔位悬空)。如果是摄像头模块(ALIENTEK提供),则刚好插满。通过这个接口,可以分别连接2个外部模块,从而实现相关实验。 13.   有源蜂鸣器     这是开发板的板载蜂鸣器(BEEP),可以实现简单的报警/闹铃。让开发板可以听得见。 14.   红外接收头     这是开发板的红外接收头(U14),可以实现红外遥控功能,通过这个接收头,可以接受市面常见的各种遥控器的红外信号,大家甚至可以自己实现万能红外解码。当然,如果应用得当,该接收头也可以用来传输数据。     战舰STM32开发板给大家配备了一个小巧的红外遥控器,该遥控器外观如图1.2.1.1所示: 图 1.2.1.1 红外遥控器 DS18B20/DHT11 接口     这是开发板的一个复用接口(U13),该接口由4个镀金排孔组成,可以用来接DS18B20/DS1820等数字温度传感器。也可以用来接DHT11这样的数字温湿度传感器。实现一个接口,2个功能。不用的时候,大家可以拆下上面的传感器,放到其他地方去用,使用上是十分方便灵活的。 2 个LED 灯     这是开发板板载的两个LED灯(DS0和DS1),DS0是红色的,DS1是绿色的,主要是方便大家识别。这里提醒大家不要停留在51跑马灯的思维,搞这么多灯,除了浪费IO口,实在是想不出其他什么优点。     我们一般的应用2个LED足够了,在调试代码的时候,使用LED来指示程序状态,是非常不错的一个辅助调试方法。战舰STM32开发板几乎每个实例都使用了LED来指示程序的运行状态。 3.       启动选择端口        这是开发板板载的启动模式选择端口(BOOT),STM32有BOOT0(B0)和BOOT1(B1)两个启动选择引脚,用于选择复位后STM32的启动模式,作为开发板,这两个是必须的。在开发板上,我们通过跳线帽选择STM32的启动模式。关于启动模式的说明,请看2.1.8小节。 4.       复位按钮        这是开发板板载的复位按键(RESET),用于复位STM32,还具有复位液晶的功能,因为液晶模块的复位引脚和STM32的复位引脚是连接在一起的,当按下该键的时候,STM32和液晶一并被复位。 5.       参考电压选择端口     这是STM32的参考电压选择端口(P7),我们默认是接开发板的3.3V和GND。如果大家想设置其他参考电压,只需要把你的参考电压源接到REF-和REF+上即可。 WK_UP 及3 个普通按钮        这是开发板板载的4个机械式输入按键(KEY0、KEY1、KEY2和WK_UP),其中WK_UP具有唤醒功能,该按键连接到STM32的WAKE_UP(PA0)引脚,可用于待机模式下的唤醒,在不使用唤醒功能的时候,也可以做为普通按键输入使用。        其他3个是普通按键,可以用于人机交互的输入,这3个按键是直接连接在STM32的IO口上的。这里注意WK_UP是高电平有效,而KEY0、KEY1和KEY2是低电平有效,大家在使用的时候留意一下。 7.       触摸按钮     这是开发板板载的一个电容触摸输入按键(TPAD),用于实现触摸按键。现在触摸按键非常流行,所以我们在开发板上也设计了一个,咱得跟上时代的步伐。 8.       电源指示灯     这是开发板板载的一颗蓝色的LED灯(PWR),用于指示电源状态。在电源开启的时候(通过板上的电源开关控制),该灯会亮,否则不亮。通过这个LED,可以判断开发板的上电情况。 9.       多功能端口     这里大家可别小看这6个排针,这可是本开发板设计的很巧妙的一个端口(由P3和P14组成),这组端口通过组合可以实现的功能有:ADC采集、DAC输出、PWM DAC输出、外部音频输入、电容触摸按键、DAC音频、PWM DAC音频、DAC ADC自测等,所有这些,你只需要1个跳线帽的设置,就可以逐一实现。 MIC (咪头)     这是开发板的板载录音输入口(MIC),该咪头直接接到VS1053的输入上,可以用来实现录音功能。 11.   录音输入接口     这 是开发板板载的外部录音输入接口(LINE_IN),通过咪头我们只能实现单声道的录音,而通过这个LINE_IN,我们可以实现立体声录音。 MIC 选择口     这是开发板板载录音的接入选择口(P2),如果使用LINE_IN录音的时候,我们把P2断开,以排除来自咪头的干扰信号,从而可以更好的立体声录音。而使用咪头录音的时候,我们短接P2即可。 13.   耳机输出接口     这是开发板板载的音频输出接口(PHONE),战舰STM32开发板有多个音频输出(VS1053/收音机/PWM DAC等),通过74HC4052实现音频选择,输入到TDA1308,再输出到该音频输出口,实现开发板的音频输出。 VS1053 IIS 输出口     这是VS1053的IIS输出接口(P1),该接口可以用来连接外部DAC,实现更好的音质输出。其实我觉得VS1053本身的音频DAC已经很好了。这个接口适合发烧友使用。 5V 电源输入/ 输出     这是开发板板载的一组5V电源输入输出排针(2*3)(VOUT2),用于给外部提供5V的电源,也可以用于从外部取5V的电源给板子供电。     大家在实验的时候可能经常会为没有5V电源而苦恼不已,有了ALIENTEK战舰STM32开发板,你就可以很方便的拥有一个简单的5V电源(最大电流不能超过500ma)。 3.3V 电源输入/ 输出     这是开发板板载的一组3.3V电源输入输出排针(2*3)(VOUT1),该排针用于给外部提供3.3V的电源,也可以用于从外部取3.3V的电源给板子供电。     同样大家在实验的时候可能经常会为没有3.3V电源而苦恼不已,ALIENTEK充分考虑到了大家需求,有了这组3.3V排针,你就可以很方便的拥有一个简单的3.3V电源(最大电流不能超过500ma)。 ADXL345 加速度传感器     这是开发板板载的一个3轴加速度传感器(U11),ADXL345分辨率高(13位),测量范围大(±16g),可以通过SPI/IIC访问,战舰开发板采用IIC访问它。有了这个,大家就可以实现一些比较有意思的应用(比如测量倾角等) 18.   电源开关     这是开发板板载的电源开关(K1)。该开关用于控制整个开发板的供电,如果切断,则整个开发板都将断电,电源指示灯(PWR)会随着此开关的状态而亮灭。 DC6~16V 电源输入     这是开发板板载的一个外部电源输入口(DC_IN),采用标准的直流电源插座。开发板板载了DC-DC芯片(MP2359),用于给开发板提供高效、稳定的5V电源。由于采用了DC-DC芯片,所以开发板的供电范围十分宽,大家可以很方便的找到合适的的电源(只要输出范围在DC6~16V的基本都可以)来给开发板供电。特别注意:如果你使用的是战舰V2.0以前的版本,输入电压建议不要超过9V!切记不能超过12V!战舰V2.0及以后的版本才支持DC6~16V的宽输入范围。 FM 收发天线接口     这个是开发板板载FM收发芯片的天线接口(ANT),同时我们安装有天线在这个上面。通过这个天线,可以很好的实现FM收音和FM发射。 RS485 总线接口     这是开发板板载的RS485总线接口(RS485),通过3个端口和外部485设备连接。一 般情况下,只需要连接2个端口即可,即A和B,并不需要连接GND。这里提醒大家,RS485通信的时候,必须A接A,B接B。否则可能通信不正常! RS232/485 选择接口     这是开发板板载的RS232/485选择接口(P9),因为RS485基本上就是一个半双工的串口,为了节约IO,我们把RS232和RS485共用一个串口,通过P9来设置当前是使用RS232还是RS485。当然,这样的设计还有一个好处。就是我们的开发板既可以充当RS232到TTL串口的转换,又可以充当RS485到TTL485的转换。(注意,这里的TTL高电平是3.3V) RS232 接口     这是开发板板载的RS232接口(COM),通过一个标准的DB9母头和外部的串口连接。通过这个接口,我们可以连接带有串口的电脑或者其他设备,实现串口通信。 24C02 EEPROM     这是开发板板载的EEPROM芯片(U15),容量为2Kb,也就是256字节。用于存储一些掉电不能丢失的重要数据,比如系统设置的一些参数/触摸屏校准数据等。有了这个就可以方便的实现掉电数据保存。 PS/2 鼠标/ 键盘接口        这是开发板板载的一个标准PS/2母头(PS/2),用于连接电脑鼠标和键盘等PS/2设备。     通过PS/2口,我们仅仅需要2个IO口,就可以扩展一个键盘,所以大家不必要对板上只有4个按键而感到担忧。ALIENTEK提供了标准的鼠标驱动例程,方便大家学习PS/2协议。 26.   游戏手柄接口     这是开发板板载的一个9针游戏手柄接口(JOY_PAD),可以用来连接FC手柄(红白机/小霸王游戏机手柄),这样大家可以在开发板上编写游戏程序,直接通过手柄玩游戏了。我们的综合实验提供有一个简单的NES模拟器,大家可以直接从网上下载nes游戏,放到开发板上玩。 LCD/OLED 模块接口     这是战舰STM32开发板的又一个特色设计,一个接口,兼容多种模块。如果是OLED模块,请靠左侧插。如果是LCD模块,则靠右侧插。OLED模块支持ALIENTEK的单色/双色OLED模块。LCD模块则支持ALIENTEK的2.4/2.8/3.5寸LCD模块,并且支持触摸屏功能。 CAN 总线接口     这是开发板板载的CAN总线接口(CAN),通过3个端口和外部CAN总线连接。一般情况下,只需要连接2个端口即可,即CANH和CANL,并不需要连接GND。这里提醒大家,CAN通信的时候,必须CANH接CANH,CANL接CANL。否则可能通信不正常! NRF24L01 模块接口     这是开发板板载的NRF24L01模块接口(U7),只要插入模块,我们便可以实现无线通信,从而使得我们板子具备了无线功能,但是这里需要2个模块和2个开发板同时工作才可以。如果只有1个开发板或1个模块,是没法实现无线通信的。 1.2.2软件资源说明        上面我们详细介绍了ALIENTEK战舰STM32开发板的硬件资源。接下来,我们将向大家简要介绍一下战舰STM32开发板的软件资源。        战舰STM32开发板提供的标准例程多达57个,一般的STM32开发板仅提供库函数代码,而我们则提供寄存器和库函数两个版本的代码(本指南以寄存器版本作为介绍)。我们提供的这些例程,基本都是原创,拥有非常详细的注释,代码风格统一、循序渐进,非常适合初学者入门。而其他开发板的例程,大都是来自ST库函数的直接修改,注释也比较少,对初学者来说不那么容易入门。        战舰STM32开发板的例程列表如表1.2.2.1所示: 表1.2.2.1 ALIENTEK战舰STM32开发板例程表      从上表可以看出,ALIENTEK战舰STM32开发板的例程基本上涵盖了STM32F103ZET6的所有内部资源,并且外扩展了很多有价值的例程,比如:FLASH模拟EEPROM实验、IAP实验、拼音输入法实验、手写识别实验、综合实验等。        而且从上表可以看出,例程安排是循序渐进的,首先从最基础的跑马灯开始,然后一步步深入,从简单到复杂,有利于大家的学习和掌握。所以,ALIENTEK战舰STM32开发板是非常适合初学者的。当然,对于想深入了解STM32内部资源的朋友,ALIENTEK战舰STM32开发板也绝对是一个不错的选择。        这里特别说明一下战舰系统综合实验,这个实验使得ALIENTEK战舰STM32开发板更像一个产品,而不单单是一个开发板了,它拥有目前市面上所有开发板中最复杂,最强大的功能,可玩性极高,它的实现,充分向大家展示了ALIENTEK战舰开发板的优势,同时也证明了STM32的强悍性能。解决了一部分人,STM32能干啥的顾虑。
相关资源