初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2015-8-17
- 在线时间
- 3 小时
|
5金钱
1、原子哥的ADC采样例程中,不考虑LCD显示,只是单纯的ADC,没有问题。
2、打算用串口将ADC送出,加人了uart_init(115200);以及printf("%f\r\n",temp); 也没有问题
3、个人考虑串口只是往电脑送给数据,不用串口中断,就屏蔽了uart_init里面串口中断相关。这个时候出问题了(代码如下)
#if EN_USART1_RX
// USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启相关中断
//Usart1 NVIC 配置
// NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断通道
// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//抢占优先级3
// NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //子优先级3
// NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器、
#endif
------------------------------------------------------
如果屏蔽如上代码没有问题,如果连最后这个也屏蔽、、、、NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器、、、、
ADC--DR寄存器的值就左移了1位,比如3.3V,本来DR寄存器是0FFE左右,如果屏蔽后干扰就有了,DR是FFE0了,AD就扩大了16倍。
用仿真器能看到,本来认为是不是进了串口中断,在仿真器单步也看不出来,求解释。谢谢大家。
|
|