安富莱原创例程简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下面的例程由安富莱电子开发网原创,将逐步公布。
(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会打印出键值。需要连上串口线,打开串口工具进行观察。