www.pudn.com > Armfly-STM32-SCH-SoftDemo.rar > 安富莱原创例程简介.txt, change:2010-03-21,size:7935b


下面的例程由安富莱电子开发网原创,将逐步公布。 
(1)每个例子同时包含IAR和KEIL的工程。 
(2)每个例子可选择在内部Flash运行、内部RAM和外部SRAM运行。(我大部分时间都选择在CPU内部RAM调试这些例程,因为装载时间比下载到Flash快很多) 
(3)使用的ST固件库版本3.1.2 
 
给初学者: 
为了使初学者能够独立构建实用的应用程序,这些例程按照次序从简单到深入,逐步引导初学者掌握最关键的信息。 
Ex001教大家如何在程序中增加调试打印信息,这是很关键的一步,因为后面的大部分例程都将借助串口工具来交互。 
Ex002教大家如何操作GPIO。这个例子对按键的采样未作滤波处理,是不能用于实际项目的。 
Ex003教大家如何使用systick中断实现软件系统必须的基准定时。这个例子涉及了中断操作。 
Ex004是一个实用的例子,是前3个例子的综合。实现了按键的滤波和按键FIFO。可以直接用在实际的项目中。 
 
 
****************************************************************************************************** 
例程名: Ex001-串口printf和scanf 
	该例程将printf函数和scanf函数重定向到串口1(USART1)。主函数循环调用scanf函数和printf函数,从串口1接收3个整数和1个字符串,然后再调用printf函数输出到串口1。通过windows的超级终端进行操作。 
 
****************************************************************************************************** 
例程名: Ex002-GPIO输入和输出 
	该例程演示如何操作GPIO。按下摇杆的上下左右键,串口会打印出键值,并点亮对应的LED。 
 
****************************************************************************************************** 
例程名: Ex003-SYSTICKSysTick实现软件延迟和定时器 
	该例程通过SYSTICK中断实现1ms定时器,在1ms定时中断服务程序实现了多个软件定时器的。主程序通过软件定时器控制4个LED按不同的周期闪烁。该例程是典型的前后台工作模式,主程序等待中服务程序提供的事件标志然后做相应的处理。 
 
****************************************************************************************************** 
例程名: Ex004-实用的按键处理例程软件滤波+FIFO 
	本例程演示如何实现按键的滤波以及按键FIFO队列的处理。systick配置为1ms中断,在中断服务程序实现所有按键的检测滤波。 
 
****************************************************************************************************** 
例程名: Ex005-PWM调节LCD背景光 
	本例程演示如何配置PWM输出,通过调节波形的占空比,从而影响LCD背景光的亮度。上键和下键可以调节LCD亮度。通过windows的超级终端可以观察到亮度信息。 
 
****************************************************************************************************** 
例程名: Ex006-ADC采样和滤波 
	本例程演示如何操作ADC (没有使用DMA)。调节精密可调电阻则串口打印出来的ADC采样值会实时变化。程序对ADC采样值做了滤波处理,因此PC超级终端上显示出来的采样值很稳定。注意:必须用超级终端工具,其它简单的串口工具会打印很多信息,而PC的超级终端支持只回车不换行显示。 
 
****************************************************************************************************** 
 
例程名: Ex007-TFT显示文字图片 
本例程演示如何操作TFT显示屏。安富莱开发板标配的显示器是3.0寸的宽屏 
*	TFT LCD显示器,分表率为WQVGA(400x240)。 
*		该例程依次显示如下内容: 
*		(1)指定坐标显示英文文本字符串 
*		(2)画圆、画矩形 
*		(3)显示一张240x400的图片 
*		(4)在图片上叠加文字 
*		(5)显示一条正弦波波形 
*		操作提示: 
*			摇杆上键: 增加背光亮度 
*			摇杆下键: 降低背光亮度 
*			摇杆左键: 显示上一页内容 
*			摇杆右键: 显示下一页内容 
*			摇杆OK键:重新刷新当前页面 
 
****************************************************************************************************** 
 
例程名: Ex008-TFT浏览中文点阵字库 
* 内容简述: 本例程演示如何显示汉字。通过按键操作可以浏览整个16点阵字库。 
*		安富莱开发板标配的显示器是3.0寸的宽屏TFT LCD显示器,分表率为WQVGA(400x240)。 
*		该例程依次显示如下内容: 
*		(1)首页帮助界面 
*		(2)第2页显示ASCII字符 
*		(3)以后页面显示每个区的汉字 
* 
*		操作提示: 
*			摇杆上键: 增加背光亮度 
*			摇杆下键: 降低背光亮度 
*			摇杆左键: 显示上一页内容 
*			摇杆右键: 显示下一页内容 
*			摇杆OK键:返回首页 
* 
*	注意:在运行本例程前,需要先烧写汉字库到CPU内部Flash 
*       字库文件:XZKs1516.bin  	字库文件大小 :267,616	,占用 1046个扇区 
*		请使用J-LINK烧写bin文件,地址填 :0x803EA00 
 
****************************************************************************************************** 
 
例程名: Ex009-TFT示波器 
* 内容简述: 本例程是一个简单的手持双踪示波器(距离实用还有一定距离) 
*	PC0管脚采集通道1的波形,用了ADC1 和DMA1_1。 
*	PC1管脚采集通道2的波形,用了ADC3 和DMA2_5。 
*	使用TIM1_CC2作为ADC1和ADC3的外部触发源,TIM1频率决定了ADC采样频率。 
*	接线端子的DAC1的输出频率10KHz的正弦波。可以通过示波器探头去探测。 
* 
*	操作提示: 
*		TAMPER键 = 切换通道焦点。CH1或CH2 
*		WAKEUP键 = 显示帮助或退出帮助 
*		USER  键 = 暂停或实时运行 
*		摇杆上键 = 放大波形垂直幅度或向上移动 
*		摇杆下键 = 缩小波形垂直幅度或向下移动 
*		摇杆左键 = 水平展宽波形 
*		摇杆右键 = 水平缩小波形 
*		摇杆OK键 = 切换摇杆调节模式。幅度或位置 
 
 
****************************************************************************************************** 
 
例程名: Ex010-Web服务器_uIP 
* 内容简述: 本例程移植uIP-1.0协议栈,实现了一个简单的Web服务器。 
*	安富莱STM32F103ZE-EK开发板选用的网卡芯片DM9000AE,改芯片可自适应10M/100M 
*	连接,自动识别直连网线和交叉网线。 
*	本例程设置的缺省IP地址是 192.168.1.10,用户可以做如下测试: 
*	(1)点击windows 开始-运行,执行cmd命令,然后在dos窗口输入 ping 192.168.1.10 
*		应该看到如下结果: 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
* 
*	(2)打开IE浏览器,在地址栏输入http://192.168.1.10  可以看到uIP内置的 
*		web测试页面 
 
****************************************************************************************************** 
 
*		本例程移植uIP-1.0协议栈,演示开发板和PC间的TCP通信。自定义了一个简单的应用层 
*	通信协议。本例程实现的功能有: 
*		(1)通过PC机控制板子上的LED; 
*		(2)测试TCP上传速度和TCP下传速度。 
*		(3)在不影响通信的条件下实现了按键的检测和打印键值功能。 
* 
*	    安富莱STM32F103ZE-EK开发板选用的网卡芯片DM9000AE,该芯片可自适应10M/100M 
*	连接,自动识别直连网线和交叉网线。 
*		本例程设置的缺省IP地址是 192.168.1.10,默认的TCP监听端口是1000。 
*		开发板工作在TCP服务器模式。PC机工作在TCP客户端模式。 
*	 	PC机上需要运行TcpTest软件,C++ Builder 6.0(sp4)开发,提供源码。 
*	用户可以做如下测试: 
*	(1)ping 试验 
*		点击windows 开始-运行,执行cmd命令,然后在dos窗口输入 ping 192.168.1.10 
*		应该看到如下结果: 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
*			Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 
* 
*	(2)PC机控制开发板上的LED试验 
*		运行TcpTest软件,在命令输入窗口输入控制LED的命令字符串,然后点击发送,开发板 
*	上对应的LED灯会发生变化。TcpTest软件有8个按钮,点击后可以直接发送Led的控制 
*	命令。 
*		命令代码如下: (末尾无0x00和回车字符) 
*		ledon 1     ----- 点亮LED1 
*		ledoff 1    ----- 关闭LED1 
*		ledon 2     ----- 点亮LED2 
*		ledoff 2    ----- 关闭LED2 
*		ledon 3     ----- 点亮LED3 
*		ledoff 3    ----- 关闭LED3 
*		ledon 4     ----- 点亮LED4 
*		ledoff 4    ----- 关闭LED4 
*		txtest      ----- 通知目标板进入上传测试状态。 
*		rxtest      ----- 通知目标板进入传测试状态。 
*		stop		----- 退出上传或下传测试状态,进入命令状态 
* 
*	(3)测试目标板连续上传数据包的通信速度 
*		发送 txtest 命令,或者点击“上传测试”按钮。目标板接收到此命令后会连续发送数据包, 
*	每个包的大小为1400字节。TcpTest软件会显示通信速度。 
*		注:由于缺省时windows对TCP包会延迟200ms再确认,导致每秒只能上传5包。实测上传速度 
*	为7000字节/秒。 
*		如果勾选了“收到数据后立即应答”,则TcpTest收到数据后会发送1个字符‘A',这样就可以实现 
*	及时应答。实测上传速度为 1.2M字节/秒。 
 
*	(4)测试PC机连续下传数据包的通信速度 
*		发送 rxtest 命令,或者点击“下传测试”按钮。 PC机会连续发送数据包给目标板, 
*	每个包的大小为1400字节。TcpTest软件会显示通信速度。实测下传速度为 1.4M字节/秒。 
* 
*	(5)通信中按键试验 
*		随时操作开发板上的3个按钮或摇杆,串口1会打印出键值。需要连上串口线,打开串口工具进行观察。