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多通道在线编程器,可以满足您的功能要求。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)