-
为什么大家都觉得ARM就不是单片机?
-
void ADC1_Init(void)
{
//ADC1时钟使能(第9位为1)
RCC->APB2ENR |= (1<<9);
//定义ADC1引脚PC0、PC1、PC2,即ADC1_10、ADC1_11、ADC1_12,设置为模拟输入模式
GPIOC->CRL &= 0xFFFFF000;
ADC1->CR2 = ADON; //唤醒ADC1
ADC1->CR1 = SCAN|JAUTO; //扫描模式
ADC1->CR2 |= (3<<12)|JEXTTRIG|CONT; //连续转换
//ADC采样时间设置,通道10,11。采样时间为7.5周期(0-2为001,3-5为001)
// ADC1->SMPR1 = (1<<0) | (1<<3);
// ADC1->SQR1 = (2<<20);
ADC1->SQR3 = (12<<0); //规则通道只有通道12
//AD注入序列寄存器:长度为3(20-21为10),第1个转换为10(10-14为01010),第2个转换为11(15-19为01011),第3个转换为12(15-19为01011)
ADC1->JSQR = (10<<10)|(11<<15)|(1<<20);
// ADC1->CR2 |= ADON; //启动ADC1
ADC1->CR2 |= (1<<3);
//等待校准复位完成
while(ADC1->CR2 & (1<<3))
{}
//开始校准,第2位设置为1
ADC1->CR2 |= (1<<2);
//等待校准完成
while(ADC1->CR2 & (1<<2))
{}
ADC1->CR2 |= (1<<15);
//开启ADC1和ADC2全局中断(第18位)
NVIC->ISER[0] |= (1<<18);
}
void TIM2_Init(void)
{
RCC->APB1ENR |= (1<<0);//定时器3时钟使能(第1位为1)
//TIM3的重映射设置:定时器3没有重映像(第10、11位为00)
// AFIO->MAPR &= ~(3<<10);
//设置NVIC
// NVIC->ISER[0] |= (1<<28);//开启TIM3全局中断(第29位为1)
//定义TIME3控制寄存器1:第5-6位设置为00,表示边沿对齐模式;第7位为0,表示TIMx_ARR寄存器没有缓冲;第8-9位设置为00表示时钟分频因子为1
//第1位为1,禁止UEV,不产生更新事件;第2位为0;第4位设置为0表示计数器向上计数;
TIM2->ARR = 10;//自动重装载寄存器周期的值(定时时间)
TIM2->PSC = 71;//时钟频率 = 72/(时钟预分频+1)
// TIM2->CCMR1 = 1<<12;
// TIM2->CCER = (1<<4);
TIM2->CR1 = (1<<0);
//定义TIME3自动重装载寄存器,预分频器;
}
-
自己顶下!
-
可以干, Swim+Jtag, 用3+1套装原MCU重新Layout就行了,
-
感谢三位大神指点...本人从中得到了不好思路..呵呵
-
自己先顶
-
下载 (96.83 KB)
2010-3-31 17:31
这个是同步规则的模式,现在我有定义ADC1中0和10,ADC中1和11,
1.请问如果采用DMA模式,读到的是否为0,1;10,11;0,1;10,11依次类推?
2.如何可以实现只读取其中一组数据?
-
啥也不说了。
JF
-
jeans2000:解释准确。
但是shell任务也是READY。晕。
-
回一楼:我觉得这样做挺长的,我们老师曾让我们看了下他的程序,很简单,没有那么多循环....不过我忘了他怎么做的
回二楼:我们直接学的ATmega128,没有学51
-
学习。。。。。。。....
-
你应该用交叉编译器,编译出来的程序才能在开发板上运行
-
的确啊,这里用X86平台 且还移植WINCE 5.0的人 少啊。
帮顶下。
期待有会的高人,我也学习下。
-
计数器超过它的最大值,肯定会溢出的
-
友情帮顶下。
-
-
用 bufif 关键字描述的三态门 :输入 、输出、使能
-
引用 2 楼 ruritanian 的回复:
你至少说一下你为什么认为是RegisterClass的原因吧,错误号是多少?
如果注释掉return RegisterClass(&wcex); 换成 return 1;那么就没问题
-
确实很大,描述一下基本方法
-
哦,这样啊。我们是要把它放到pxa270上。