📄 main.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 + -