⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 ARM7(LPC2124)学习的一些例程
💻 C
字号:
#include <LPC21xx.H>

#define CR 0x0D

void init_uart1()
{
  U1LCR = 0x83;                   /* 8位数据,无效验,一个停止位 */
  U1DLL = 122;                     /* VPB 15MHz的时候波特率为9600 */
  U1LCR = 0x03;                   /* DLAB = 0 */
}

int putchar (int ch)  {                  /* 向串口输出一个字符 */
  if (ch == '\n')  {                     //发送回车符
    while (!(U1LSR & 0x20));             //等待发送完成
    U1THR = CR;	        
  }
  while (!(U1LSR & 0x20));
  return (U1THR = ch);
}

void puthex(int hex)
{
	if(hex<9)
	{
		putchar(hex+'0');
	}
	else
	{
		putchar('A'+(hex - 10));
	}
}
void delay (void)  {                         
  unsigned volatile long i,j;
  for(i=0;i<60000;i++)
  for(j=0;j<5;j++)
  ;
}
void serialPuts(char *p){                  /* 向串口输出字符串 */
  while (*p != '\0'){
  	putchar(*p++);
  }
}

void init_adc()
{
   ADCR   = 0x002E0401;            /* Setup A/D: 10-bit AIN0 @ 3MHz */
}

void read_data(void)
{
  unsigned int vol;
  ADCR |= 0x01000000;                      //开始AD转换
  do {
    vol = ADDR;                            //读取AD转换数据寄存器
  } while ((vol & 0x80000000) == 0);       // 等待AD转换结束
  ADCR &= ~0x01000000;                     // 结束AD转换
  vol = (vol >> 6) & 0x03FF;               // 设置数据格式并且按照16进制输出
  serialPuts ("\nAIN0 Result = 0x");          
  puthex((vol >> 8) & 0x0F);               
  puthex((vol >> 4) & 0x0F);               
  puthex (vol & 0x0F);   
}

int main (void)  {
   PINSEL0 = 0x00050000;           /* 设置引脚,开串口功能 每个IO功能选择占2bit*/
   								   /*0x00050000,0101(pin8,pin9二进制)代表使能串口1*/
  /* 开始初始化串口 */ 
  init_uart1();
  init_adc();
  while (1)  {
  	read_data();
	delay();
  }
}   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -