1. GPIO翻转速度最大为多少? A:GPIO的翻转速度最大可达系统时钟的四分之一。 2. GPIO内部上/下拉电阻多大? A:内部上/下拉电阻为40KΩ左右,属于弱上拉,正常使用时,需外接上拉电阻的场合要加上拉电阻。 3. GPIO的各种工作模式如何使用? A:LPC1100系列Cortex-M0微控制器的I/O口可配置为四种模式:高阻(既不上拉也不下拉)、上拉、下拉和中继。 输出模式下,无论配置为哪种模式,I/O口都能正常输出高/低电平,说明四种模式的配置都是针对输入设计的。可参阅数据手册“Standard I/O pad configuration”一节中相关描述。 输入模式下,让引脚悬空,I/O口设置为不同模式时情况如下:
4. LPC1100系列芯片的GPIO能否直接驱动5V器件? A:不能,在使用到的GPIO数量较少时可选择三极管驱动,使用到的GPIO数量较多时需要使用专用驱动芯片。 5. GPIO高电平中断时,中断电压为多少? A:1.59~1.65V即可产生中断,1.74V以上能较稳定进入中断。 6. GPIO使用双边沿中断时,GPIOxIEV寄存器应如何处理? A:使用双边沿中断时,使用GPIOxIBE寄存器即可,GPIOxIEV寄存器配置无效。 7. 芯片加密后,应如何解密? A:可通过ISP方式对芯片进行擦除,操作步骤如下: 1) 短接P0.1引脚与GND; 2) 将UART0(P1.6、P1.7)通过RS-232电平转换后连接到PC机,注意要与PC机共地; 3) 给系统重新上电; 4) 使用K-Flash或Flash Magic工具软件进行擦除。 8. 将SWD引脚配置为GPIO后不能正常仿真,应如何处理? A:通过ISP方式对芯片进行擦除。 9. 芯片进入低功耗模式后不能正常仿真,应如何处理? A:通过ISP方式对芯片进行擦除。 10. 低功耗模式下能否进行调试? A:不能,进入低功耗模式后调试功能被禁止。 11. FlashMagic软件“芯片选择”中为何没有LPC1114? A:FlashMagic的版本太低,需更新软件版本。下载链接如下: 12. 使用FlashMagic下载程序时提示程序下载成功,为何脱机不运行? A:可能存在以下原因:
13. LPC1100系列ARM能否使用H-JTAG仿真或调试? A:不能,目前已推出的LPC1100系列ARM只支持SWD模式。 14. 使用K-Flash软件烧写程序时为何提示‘四处校验错误’? A:这属于正常现象。校验位是烧写程序时由编程算法进行计算的,若开发环境(如Keil)编译产生的Hex文件没有自动进行校验位填充,使用K-Flash进行校验时,从芯片读出的文件是已经填充校验和的,与编译产生的HEX文件进行比较会出现四处不一致的提示。 对于校验和自动填充实现方法请参考该网站上相关文档: 15. CK100驱动是否支持Win7操作系统? A:支持32位操作系统(包括XP、WIN7),暂不支持64位操作系统。 16. 怎样进行中断注册? A:对于旧版本工程模板:首先在“vector_table.c”文件中进行函数声明,然后在“vector_cfg.h”文件中进行注册,详情可参考我司配套例程中带有中断的例程。 对于新版本工程模板:中断初始化完成后将中断服务函数名称定义为与“startup_LPC11xx.s”文件中的中断入口函数名相同即可。 17. 使用ADC测量电压时,数据会出现大幅度跳变,主要原因有哪些? A:出现跳变问题主要有以下三个原因: 1) 软件方面:未做滤波处理(如多次采样取平均值); 2) 硬件方面:硬件电路本身未处理好,采样电压本身出现跳变;模拟地、数据地未作隔离处理,数字电路对模拟电路产生干扰。 18. ADC的各通道为何出现相互干扰? A:可能的原因如下: 1) 硬件电路本身几个通道之间相互干扰; 2) ADC的通道引脚有悬空时,不悬空的引脚会对悬空的引脚产生干扰,悬空引脚不使用ADC功能时可将GPIO配置为非ADC功能,若必须使用ADC功能,建议将悬空的引脚接地。 19. UART的中断服务函数中为何没有清除中断标志? A:读取寄存器U0IIR后即可清除中断标志。 20. UART的通信波特率最大为多少? A:LPC1100系列Cortex-M0微控制器串口的波特率按照理论计算可以达到50÷16 = 3.125Mbps,但由于RS-232芯片与PC机的限制,与上位机通信时波特率最高只能达到115200bps。不与PC机之间通信,直接两个MCU之间通信波特率可大于115200bps。 21. UART奇偶校验位强制0/1校验如何理解? A:强制0/1校验是指在UART通信过程中,数据的第九位不依赖数据位,强制输出0或者1。 22. 为何重新配置UART波特率不能成功? A:重新配置波特率时,需要先关闭UART时钟。 23. 使用I2C读取PCF8563小时/天寄存器值,为何每次读出的数据是变化的? A:PCF8563的小时/天/月/年等寄存器中存在一些保留位,读出数据会发生变化;将保留位屏蔽后数据是不变的。 24. 为什么I2C正常工作时用手触摸SDA/SCL线会出现死机现象? A:用手触摸SDA/SCL时会造成总线错误,属于非法的停止或起始条件,错误状态为0x00,在I2C中断服务函数中添加对0x00错误状态的处理即可,如程序清单1所示。 程序清单1 I2C中断服务函数错误处理
A:LPC11C12/14片上API使用0x1000 0050~0x100000B8范围空间的片内RAM,使用片上API时,用户应用程序不应使用该地址范围的RAM,应适当修改分散加载文件,避免使用该范围RAM。 26. 为何WDT中断只能进一次? A:要让程序能重新进入中断,需要在中断服务函数中重新使能并喂狗。 27. 开发Cortex-M0选择哪个版本的MDK? A:MDK V4.01版本以上。 28. SWD引脚能否不接外部上拉电阻? A:由于SWD引脚默认内部上拉,外部使用时可不接外部上拉电阻。 29. 使用CK100/AK100调试,IRC提供时钟时为何UART发送全为乱码? A:使用CK100进行仿真/下载时,使用IRC,需在仿真器配置“初始化宏”选项中“禁用宏文件”,如图2.1所示。 ![]() 图2.1 禁用宏文件 芯片启动首先运行内部bootloader对IRC精度进行校准,使用初始化宏文件会跳过bootloader,即IRC未校准,导致UART发送乱码。 30. LPC11C14是否存在唯一序列号?在哪个地址? A:存在,可通过IAP函数读取,详情可查看用户手册《Flash接口与特性》章节。
|
|