第4节 STM32_DK开发板
推荐给好友
打印
加入收藏
更新于2008-11-21 13:21:15

 5.4 STM32_DK开发板
STM32F103开发板是针对STM32F103xx微控制器设计制作的,考虑了很多使用目的和应用需求,可作为STM32F103xx系列微控制器的学习实验平台,可以作为基于STM32F103xx项目设计的参考。板上的微控制器芯片为ST公司的STM32F103C8。该板具有JTAG调试功能,提供了LCD、LED、蜂鸣器、测试按钮、UART、USB、SPI、I2C、音频输入和输出等外围设备结构,硬件资源非常丰富,是一款性价比很高的硬件开发平台,可以充分满足用户学习STM32F10xx系列微控制器和开发应用产品的需要。

5.4.1 开发板规格说明
1. 硬件规格
 处理器:STM32F103C(Cortex-M3内核),72MHz,64kB Flash、20KB SRAM;
 USB2.0通信接口(全速Device);
 1个RS232异步串行接口(UART1,可直接对连做RS232通信实验);
 16×2字符LCD;
 3个LED指示灯(一个电源、两个通用);
 多路12位ADC输入接口、1个板上电位器(ADC试验);
 1个蜂鸣器(报警使用);
 1个复位按钮(RESET);
 4个通用按钮(4个都可用于外部中断);
 20脚JTAG调试接口(高速程序下载、调试,并支持Flash烧写);
 音频输入和输出接口
 电源接口(+5V/1A)
2. 软件配置
 CPU片上外设(PLL、RTC、WDG、Timer、PWM、USB、CAN、UART等)的测试程序源码;
 板上所有扩展硬件模块(包括LCD等)的驱动、测试程序源码;
 USB协议栈(HID类,见USB工程);
 移植好的μC/OS-II(见uCOS_II 工程);
 硬件原理图及使用手册。
3. 接口与跳线简介


开发板的原理图,请参考本书附带的光盘



1. LCD接口


LCD1602是一个8位数据线的2*16字符的显示模块,通过一个8位移位寄存器74HC595与STM32F103相连,74HC595的数据输入端和STM32F103C的SPI1的输出引脚P7相连,时钟输入与SPI1的时钟输出相连,显示字符的时候通过STM32F103的SPI1接口向LCD1602传送要显示的字符的ASCII码,进而传送到LCD1602进行显示。
2. 直流电源


开发板可以使用外接的5V电源供电,也可以通过USB接口供电。L2用于指示开发板上的电源是否接通,灯亮表示电源接通。

3. 蜂鸣器


蜂鸣器的输入端和开发板的PB13相连,将PB13配置为输出时,向PB13写入1,蜂鸣器将发出响声,直到被写入0停止发声。 JP5用于在不需要的时候断开蜂鸣器。
4. USB(Device)接口


USB2.0标准接口,PB14被用作USB的上拉输入控制,需要配置成输出开漏模式,往PB14写入0表示打开USB上拉电阻,一旦打开上拉电阻,评估板连接到的PC主机将开始枚举设备。
5. 串行接口


这部分电路用于将STM32F103C的UART1引出,UART1的发送引脚是PA9,接收引脚是PA10,在使用UART1传输数据时,PA9需要配置成备用功能推拉模式,PA10需要配置成输入浮动模式。
6. ADC


与电位器相连的PB0是ADC通道8的输入端口,当用于ADC输入时,须将PB0配置为模拟信号输入模式。调节电位器可以改变ADC的输入电压大小。
7. LED


L1,L3为通用指示灯,分别连接GPIO的PB9和PC13。使用前需将口线配置为GPIO输出模式。向口线输出1点亮对应LED,输出0则熄灭LED,L2用于电源指示。
8. 按键


对应K1 ~ K5的口线为PB7,PB6,PB5,PA1,NRST,使用前应配为输入模式。常态时输入为1,Key按下时响应口线输入0。其中K1~K4都可用外部中断方式或轮流查询方式判断按键。
9. 音频输入和输出


用于音频的输入和输出。AUD_PHO连接到PB8,AUD_IN连接到PB1(ADC通道9的输入),使用的时候PB1需要配置成模拟输入,通过ADC把模拟量的输入信号转化为数字信号。
由于STM32F103没有片上DAC来产生模拟数据流,但是可以通过内建脉宽调制(PWM)模块来产生一个信号,该信号的脉宽和采样数据的振幅成比例。PWM的输出信号靠一个低通滤波器被合成,滤波器可以去除高频部分,只留下低频部分。这个低通滤波器的输出为原始模拟信号提供了一个合理的重建。PB8是TIM4通道3的输出,当用于产生信号时被配置成备用功能推拉模式。

5.4.2 开发板实例程序

STM32F03开发板提供了完善的软件包,包括外设驱动的软件库及对应于每个外设接口的应用实例。除特别说明外,每个程序的源代码均有两个版本,对应于ARM的Keil和IAR环境,分别存放在随书附带的光盘中,目录结构如表 5.7所示


注意:以上程序都在falsh中调试通过(即启动地址为0)。
1. ADC测试程序
本例程演示了STM32103开发板上的ADC功能。运行时液晶屏上显示:
STM32F10x DEMO
ADC Val:xxxx
其中xxxx为ADC转化模拟电压后的值,可以通过调节电位器的值来改变测量值。
2. CAN测试程序
程序将CAN 设为回环测试模式,过程如下:
非中断方式发送消息,发送成功后并接受正确点亮L1,否则熄灭L1;发送消息,发送消息,并在中断方式下接收消息正确点亮L3,否则熄灭L3。
3. CortexM3测试程序
本例程演示如何使用cortexM3位访问进行原子读写SRAM上的一个变量。
程序运行时,液晶屏将显示这个变量的值,每修改一次将会延迟1秒以便我们观察数值变化,同时L1会闪烁一次。
4. 外部中断测试程序
本例程演示了STM开发板上的外部中断功能。运行时液晶屏上显示:
STM32F10x DEMO
EXTI TEST
按K1产生一次外部中断,L3将闪烁一次。
5. DMA测试程序
本例程测试了DMA中memory (Flash) -to-memory (RAM) 的数据传输。
程序运行后,如果数据传输正确,液晶屏上会显示:
STM32F10x DEMO
DMA TEST: OK
如果数据传输错误,液晶屏上会显示:
STM32F10x DEMO
DMA TEST: KO
6. Flash烧写测试程序
本例程演示了如何编程FLASH。
程序运行后,如果编程正确,液晶屏会显示:
STM32F10x DEMO
FLASH TEST: OK
如果编程错误,液晶屏会显示:
STM32F10x DEMO
FLASH TEST: KO
7. GPIO测试程序
本例程主要测试LED和KEY,当程序运行时,液晶屏上会显示:
STM32F10x DEMO
GPIO TEST
按键K1-K4控制灯闪动的次数:
按k1,L1,L3各闪1次
按k2,L1,L3各闪2次
按k3,L1,L3各闪3次
按k4,L1,L3各闪4次
8. 独立看门狗测试程序
本例程测试了独立看门狗的使用。
程序运行时,液晶屏上会显示:
STM32F10x DEMO
IWDG TEST
通过使用SysTick中断按照250ms周期性更新IWDG计数器,每次更新的时候L1闪烁一次。使用外部中断7来模拟一次软件失败,按K1将产生一次外部中断7,因为外部中断7的优先级比EWI优先级高,所以将会导致SysTick中断没有响应,IWDG计数器没有被重载,将出现重置事件,发生重置之后如果按K5来重置程序,L3将被点亮.
9. RCC测试程序
本例程演示了如何配置系统时钟源。
当程序运行时,液晶屏上会显示:
STM32F10x DEMO
RCC TEST
L1,L3根据系统时钟频率闪烁。
10. 实时钟测试程序
本例程主要为测试RTC功能。
当程序运行时,液晶屏上会显示:
STM32F10x DEMO
Time: hh:mm:SS
其中 hh:mm:SS 分别代表分、秒,并实时刷新。
每秒L1闪烁一次,每分钟蜂鸣器响一声。注意:需接通蜂鸣器开关(JP5)。
11. SysTick测试程序
本例程为测试SysTick,通过SysTick定时1秒,程序运行时,液晶屏上显示:
STM32F10x DEMO
SysTick TEST
L1,L3每秒闪烁一次。
12. TIM测试程序
本例程演示了如何使用TIM来设置一个0-256循环计数器。
程序运行时,液晶屏上显示:
STM32F10x DEMO
TIM COUNT: Xxx
XXX为循环计数器的值。计数器每加1,L1闪烁一次。
13. 音频测试程序
本例程演示了如何使用PWM来播放声音。
接上耳机,当程序运行时,耳机将循环播放一段特定的音频文件,液晶屏上显示:
STM32F10x DEMO
AUDIO TEST
14. UART串口测试程序
本示例程序主要测试UART1的功能
当程序运行时,液晶屏显示:
STM32F10x DEMO
USART TEST
使用串口连接线将开发板和PC连接起来,打开PC上的串口调试软件并开启开发板连接对应的串口,此时串口调试软件会收到:USART Example: USART-HyperTerminal communication。如果用串口调试软件发送一个字符,开发板的液晶屏上显示接收到的字符串,接收满8个字符之后停止接收。注意:波特率:9600;数据位:8(位);结束位:1(位)。
15. USB鼠标测试程序
程序演示了一个USB鼠标的应用。
运行时用USB线连接开发板与PC机,PC将自动识别出设备类型并准备驱动。当一切配置完成后,可以用板上的按键来模拟鼠标动作(K1代表上,K2代表下,K3代表左,K4代表右)。
16. 窗口看门狗测试程序
本例程测试了独立看门狗的使用。
程序运行时,液晶屏上会显示:
STM32F10x DEMO
WWDG TEST
通过使用EWI按照250ms周期性重载WWDG计数器,每次重载的时候L3闪烁一次。
使用外部中断7来模拟一次软件失败,按K1将产生一次外部中断7,因为外部中断7的优先级比EWI优先级高,所以将会导致EWI中断没有响应,WWDG计数器没有被重载,将出现重置事件,发生重置之后如果按K5来重置程序,L1将被点亮.
17. WAV播放器示例程序
本例程演示了演示STM32F103C开发板上的USB接口结合批量传输模式,从PC机接收WAV数据,然后通过PWM合成音频信号。
将开发板和PC通过USB连接在一起,PC将会提示发现新硬件,如果是第一次使用,需要安装驱动(驱动程序在测试程序同一目录下的Driver文件夹),硬件安装完成后,在设备管理器你将会发现出现了一个新硬件STM32 Victual COM Port,这时可以启动PC端播放器,在COM列表中选择刚刚出现的COM口,这时你将会看到播放器主界面,用户可以通过PC播放器选择WAV文件播放,在开发板的音频输出插入耳机就能听到动听的音乐,目前只支持8位,22KHz的Type I / PCM8格式 / Mono WAV文件。
程序运行时,如果当前没有播放WAV音频,液晶屏上会显示:
STM32F10x DEMO
WAV Player: STOP
如果当前正在播放WAV音频,L1将不停闪烁,液晶屏上会显示:
STM32F10x DEMO
WAV Player: PLAY
PC端播放器最上方的编辑框将会显示当前正在播放的WAV的文件名。进度条显示当前文件的播放进度。按播放按钮将重新开始播放列表中的文件,按停止则停止播放。
18. uC/OS-II移植示例
本例程仅仅用到μC/OS-II 的核心功能(任务调度、定时)。
程序建立了3个用户任务,分别控制LED 的闪烁与LCD 显示,程序还开启了μC/OS-II 的统计任务,用于计算CPU 利用率。当程序运行时,液晶屏显示:
STM32F10x DEMO
CPU USAGE: xxx
xxx为当前CPU的使用率,L1,L3将不断闪烁。

5.4.3 关于ST ARM的常见问题
1. 仿真器发现不了Cortex M3内核
确认硬件连接正确:仿真器USB线连接PC与仿真器,仿真器与开发板JTAG相连;并确定已上电(电源指示灯亮)。注意JTAG连接电缆的完好。
2. 关于烧写Flash异常
如果出现读到内核ID=0xFFFFFFFF,而导致无法将程序烧写进Flash,很可能是JTAG连接出现异常。此时将开发板上的BOOT0、BOOT1的跳线拔下,从而采用STM32内嵌的SRAM启动方式,可使开发板恢复正常状态,之后重新插上跳线,烧写Flash即可运行用户程序。
3. 关于USB
STM32F10xx内带USB2.0控制器(全速),外面只要接一个USB插座即可。我们已经做了两个测试程序,一个模拟鼠标的程序,可以通过开发板上的按键,控制PC机上的鼠标光标移动。另外一个是WAV播放器,可以通过USB从PC传输波形数据到开发板进行实时播放。ST提供了其他传输模式、类的库函数,可参考库函数说明和相关应用笔记。

<<上一节 下一节>>

      

相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.