- 打卡等级:偶尔看看III
- 打卡总天数:46
- 最近打卡:2025-10-23 16:48:09
已绑定手机
中级会员
- 积分
- 319
|
实验三:PRINTF_USB_int 打印接收到的数据(中断方式)
1.去官网WWW.STCAI.COM,下载软件工具中的:
1.1.工具软件:Aicube-isp-v6.96A软件、keil中断拓展插件、工具使用说明、触摸按键套件。
1.2.库函数:USB库函数(适用于所有带USB模块的芯片,如AI8051U及其他STC 8位、32位芯片)。
1.3.AI8051U系列32位硬件乘除运算MDU32库函数。
1.4.8系列MDU:16位硬件16位MDU16、32位MDU32C乘除库函数。
1.5.8G-8H系列通用库函数。
1.6.8A8K64D3通用库函数。
1.7.32位MDU库函数。
1.8.32位TFPU库函数。
1.9.32G12k128主控库函数。
1.10.32F系列TFPU库函数。
1.11.AI8051U创新、传统风格库函数。
1.12.AI8051U、32位硬件三角函数和浮点运算的TFPU库函数。
2.打开USB库函数:
2.1.范例程序“
2.1.1.STC-CDC查询、STCCDC中断、STC-hid查询、STC-hid中断(今天用到的是STC-CDC)。
2.2.Usb库函数:
2.2.1.stc_usb_cdc_8h_data.lib
2.2.2.stc_usb_cdc_data_8h_b151.lib
2.2.3.stc_usb_cdc_8h_xdata.lib
2.2.4.stc_usb_cdc_xdata_8h_b151.lib
2.2.5.stc_usb_cdc_32g_data.lib(<64kB)
2.2.6.stc_usb_cdc_data_32g_huge.lib(>64KB)
2.2.7.ai_usb.h
2.2.8.keilkill中断拓展
2.2.9.Stc32_stc8_usb.h
2.2.10.库文件使用说明。
3.AICUBE 项目助手设置界面:
3.1.项目设置:
3.1.1.单片机型号:AI8051U-32Bit
3.1.2.项目名称:test1
3.1.3.项目路径:E:\AI8051U
3.1.4.项目类型:单文件类型
3.1.5.自动打开项目:是
3.1.6.自动备份keil项目文件:是
3.1.7.备份深度:2
3.1.8.编码格:GB2312(新增UTF-8)
3.1.9.Cpu模式:源模式(sourse)
3.1.10.存储器模式:xsmall模式
3.1.11.代码等等小模式:large模式
3.1.12.4字节中断帧:是
3.1.13.使能REMOVEUNUSED:是
3.1.14.创建HEX格式:是
3.1.15.HEX格式:HEX-80(代码>64kB,用HEX-386)
3.2.图形化I/O设置
3.2.1.如右图:芯片管脚功能:
3.2.2.左键选择管脚功能,右键配置管脚模式
3.2.3.可以看到右下输出窗口,显示配置
3.3.点击左侧窗口“PERIPHERAL,外设”下拉的相应端口必须勾选后,才能生效。
3.4.图形化时钟配置(一般默认,不需要设置):
3.4.1.主时钟源:内部PLL输出
3.4.2.系统时钟分频:3
3.4.3.主时钟输出:否
3.4.4.选择内部高速IRC频率:内部预置频率
3.4.5.内部预置频率:40MHZ
3.4.6.启动外部高速晶振:否
3.4.7.启动内部低速IRC:否
3.4.8.启动内部48MHZ高速IRC:否
3.4.9.PLL时钟源:内部高速IRC
3.4.10.PLL输出时钟分频:4分频
3.4.11.PLL输出:8倍频(96MHZ)
3.4.12.高速外设时钟预分频:1
3.4.13.I2S时钟分频:1
3.4.14.PWMA时钟分频:1
3.4.15.PWMB时钟分频:1
3.4.16.TFPU时钟分频:1
3.4.17.设置是否正确,检查有无黄色文本(报错),报错必重新修改设置。黄色报错,蓝色可配置。
3.5.SYS,系统:
3.5.1.GLK 时钟:一定要勾选,保障上一章节“图形化时钟配置”对时钟的所有配置生效。
3.5.2.除时钟配置外,其他如外部中断、定时器/计数器、TFT、总线等,根据电路要求需要设置。
3.6.USB通用串口总线设置:
3.6.1.USB协议:CDC通信设备协议
3.6.2.数据处理方式:查询方式
3.6.3.USB不停电下载:是
3.6.4.ISP下载命令:@STCISP#
3.6.5.等USB主机检测到DEVICE并配置完成:否
3.6.6.中断优先级:最低优先级。
4.保存以上所有设置。
5.实际操作:
5.1.重新打开AIcube项目
5.2.首先勾选“USB通用串行总线”:
5.3.USB具体设置:
5.3.1.USB协议:CDC通信设备协议
5.3.2.USB端口:D-(P3.0),D+(P3.1)
5.3.3.数据处理方式:中断方式
5.3.4.USB不停电下载:是
5.3.5.ISP下载命令:@STCISP#
5.3.6.等USB主机检测到DEVICE并配置完成:否
5.3.7.中断优先级:最高优先级。
5.4.本实操对其他配置暂时不需要用到,不做设置
5.5.保存上述设置。
5.6.生成并打开keil项目
5.7.打开main.c
5.8.先编译一下,0 error,0 warning
5.9.添加头文件和主函数
5.10.必须在对应的begin与end之间添加
5.11.从keil范例程序中:深圳大学上机试验有编好的PRINTF_USB_query 程序中的C语言打开,在main函数段,找到并复制程序段
5.11.1. if (UsbOutBuffer[0] == 6)
printf_usb("Hello World !\r\n"); //接收到数据6后打印“Hello World !”
else if (UsbOutBuffer[0] == 7)
printf_usb("China !\r\n"); //接收到数据7后打印“China !”
粘贴到本实验对应位置。
5.12.在相应头文件位置复制粘贴:
5.12.1.#include”ai8051u.h”
5.12.2.#include”ai_usb.h”
5.12.3.用TAB键将代码对齐,规范代码风格
5.12.4.如果遇到程序较大,可以使用4分屏命令:windows->spilot,方便编辑程序,不需要用就退出:windows->close all。
5.12.5.编译程序显示:0 error,0 warning,表示编译成功。
5.13.回到AiCube 界面:进行设置:
5.13.1.单片机型号:AI8051U-32K64
5.13.2.通信方式:USB-CDC
5.13.3.最低波特率:2400
5.13.4.最高波特率:115200
5.13.5.起始地址:勾选“清除代码缓冲区”、“清除EEPROM缓冲区”
5.13.6.硬件配置:
5.13.6.1.IRC调节模式:勾选“不调节,使用内部预置频率”
5.13.6.2.IRC 预置频率:40MHZ
5.13.6.3.勾选:振荡器放大增益>(12MHZ以上建议选择)。
5.13.6.4.勾选:上电复位使用较长延时
5.13.6.5.勾选:允许低电压复位(禁止低电压中断)
5.13.7.打开编译好的程序:E:\AI8051U PROJECTS\OBJECT\Printf_usb_int.hex
5.14.先用普通USB下载
5.14.1.参照AI8051U实验箱1.2使用说明,对照实物(本人无实验箱,只能做前半部分)
5.14.2.硬件连接:用USB线将PC与实验箱连接上
5.14.3.先按下P3.2(接地)、接着按下电源按键(断电)再松开电源按键上电。
5.14.4.出现:ISP下载软件上USB-CDC跳转为(HID1)USB-Writer(自动识别、已经通信了)。
5.14.5.此时,系统与端口3.2 无关了,可松开P3.2按键,进入程序下载模式。
5.14.6.打开程序:找到objects->printf_usb_int.hex
5.14.7.点击”下载/编程“:此时可在软件右下方窗口显示:下载成功!并提示:1秒后自动跳转USB-CDC串口助手
5.14.8.1秒后,软件右上方USB-CDC串口助手打开,在右侧发送区,点击发送”hello world!“,在接收缓冲区,看到“hello world!”,发送一个接收一个。
5.14.9.在右上方窗口左下角处点击“关闭串口”,程序立即停止下载。
5.15.USB不停电下载(注:第1次下载须先普通下载后才能进入不停电下载):
5.16.ISP下载软件里,除了硬件设置外,还要在软件项目进行设置:
5.16.1.在ISP下载软件中,选择”收到用户命令后复位到ISP监控程序区”
5.16.1.1.勾选:USB-CDC(串口模式)
5.16.1.2.勾选:使用默认的内部自定”@STCISP#”
5.16.1.3.勾选:下次下载使用HID接口进行ISP下载
5.16.1.4.勾选:每次下载前先发送自定义命令。
5.16.1.5.勾选:每次下载前都重新装载目标文件
5.16.1.6.勾选:当目标文件变化时自动装载并发送下载命令。
5.16.2.软件设置后,USB连线连接PC与硬件实验箱。
5.16.3.按下P3.2按键(接地)、接着按下电源按键(断电)再松开电源按键给板子上电。
5.16.4.出现:(HID1)usb-writer(串行接口通信了)
5.16.5.此时系统与端口P3.2无关了了,可松开P3.2按键,进入程序下载模式
5.16.6.下面操作与USB普通下载相同。
5.17.不停电下载与普通下载的区别:
5.17.1.当源代码发生改变,软件仍然可以等待并下载。
5.17.2.点击下载/编程:下载模式由USB-CDC转变为(HID1)USB-WRITER。 |
|