高分悬赏:LPC1114实现ADC转换的详细教程及程序,详解???

高分悬赏:LPC1114实现ADC转换的详细教程及程序,详解???,第1张

#define ADCFrequency 1000000 /* 转换时钟1MHz */

void ADCInit( void )//初始化

{

LPC_SYSCON->SYSAHBCLKCTRL |= (1 <<16) /* 允许I/O配置模块的时钟 */

LPC_IOCON->PIO1_10 &= ~0xBF/* 配置PIO1_10为模拟输入模式*/

LPC_IOCON->PIO1_10 |= 0x01 /* PIO1_10模拟输入通道6 */

LPC_IOCON->PIO1_11 &= ~0xBF/* 配置PIO1_1 为模拟输入模式*/

LPC_IOCON->PIO1_11 |= 0x01 /* PIO1_1 模拟输入通道7 */

LPC_SYSCON->PDRUNCFG &= ~(0x01 <<4) /* ADC模块上电 */

LPC_SYSCON->SYSAHBCLKCTRL |= (0x01 <<13) /* 使能ADC模块时钟 */

LPC_ADC->CR = ( 0x01 <<6 ) |/* SEL=6,选择ADC6 */

( 0x01 <<7 ) |/* SEL=7,选择ADC7 */

(( SystemFrequency / ADCFrequency - 1 ) <<8 ) | /* 转换时钟1MHz */

( 1 <<16 ) | /* BURST=1,使用Burst模式*/

( 0 <<17 ) | /* 使用11 clocks转换*/

( 0 <<24 ) | /* ADC转换停止 */

( 0 <<27 ) /* 直接启动ADC转换,此位无效*/

NVIC_EnableIRQ(ADC_IRQn) /* 使能ADC中断,并配置优先级 */

NVIC_SetPriority(ADC_IRQn, 2)

LPC_ADC->INTEN = (1 <<6) /* 通道6 中断使能 */

LPC_ADC->INTEN = (1 <<7) /* 通道7 中断使能 */

}

void ADC_IRQHandler(void)//中断过程

{

bAdcFlag = 1

Channel_1 = ( (LPC_ADC->DR[6]) >>6) &0x3FF/* Channel_1 读取通道6的值*/

Channel_2 = ( (LPC_ADC->DR[7]) >>6) &0x3FF/* Channel_2 读取通道7的值*/

}

INT16U sTreatmentADC(INT16U wAdcChannel)//处理过程

{

............

if(bAdcFlag == 1){

bAdcFlag = 0 /* 清零标志*/

...........

}

我们平时的程序都是烧写到STM32的内部FLASH里的,所以可以通过串口或JLINK直接下载就可以了。

而ST官方DEMO的资源文件,和uclinux的image文件都是烧写到外部NOR FLASH的,

除了可以用DFU方式下载.dfu文件之外,还可以用JLINK烧写.bin文件和.hex等文件,而且JLINK烧写NOR的速度比DFU快很多。

这里我们来介绍一下,是怎么通过JLINK烧写字库到NOR FLASH里的:

1、首先打开SEGGER->JLink ARM Vx.xx ->J-Flash ARM

2、然后点File ->open project,

在d出的选择框中选择工程文件:C:\Program Files\SEGGER\JLinkARM_V424\Samples\JFlash\ProjectFiles\STM32F103ZE_ST_MB672_CFI_1x16.jflash

3、然后点File ->open data file 打开要烧写的文件,这里以字库HZK16.bin为例

4、然后会d出一个地址设置框,这里我们填写NOR FLASH的起始地址64000000

5、设置好上面的步骤后,下面点Target ->connect连接设备

连接成功后,在下面的LOG框中看到Connected successfully的信息

6、最后就可以点Target ->program &valify烧写了

等待烧写完成,文件就成功烧写到外部NOR FLASH了

如果要烧写多个文件,步骤3、完成后,接着加一个步骤File ->Merge data file。后面步骤一样。

如果我们烧写的两个文件,会擦除FLASH的同一个块,那就要用Merge data file,不然后面烧的就会把前面烧的擦除了。

LPC1114是Cortex-M0内核的芯片,他有SWD和UART等串行通讯接口,可以用来编程程序和升级。如果焊接到板子上了,可以通过板子上留的这几个接口来升级,致远电子的P800-ISP多通道在线编程器,可以满足您的功能要求。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11134452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存