打印
[技术问答]

向奔牛咨询两个遇到的小问题

[复制链接]
1966|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DLF5|  楼主 | 2013-11-12 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 DLF5 于 2013-11-12 11:52 编辑

我用的是M058LBN,用寄存器方式编程的。
1,关于串行通信接收,接收FIFO为14个字节中断
     UA1_FCR &= 0xFFFFFF0F;        //先清零相应位 RFITL_4      (1<<4)
     UA1_FCR |= RFITL_14;        //FIFO  14BIT
           。
           。
void UART1_IRQHandler(void)
{
  if(UA1_ISR & RDA_INT)                                 //检查是否是接收数据中断(接收和发送用一个中断向量口)
   {               
    while(UA1_ISR & RDA_IF)                  
      {
        while(UA1_FSR & RX_EMPTY==0)                  //检查接收FIFO是否为空,获取所有接收到的数据 ******该语句开通就死在这里
        {
         read_data();
        }        
      }
    }
}
不知为什么程序一直死在while(UA1_FSR & RX_EMPTY==0) ,百思不解。改用直接读取14个字节后程序运行正常,数据正确。


2.AD转换,设成单次转换,单端输入模式,只能转换0通道,而通道1则转换结果一直为零。
  是不是单次转换模式只能用通道0,而别的通道无法用?(应该不太可能)
  技术手册上写“在单次转换模式时,如果软件使能多于1个通道,序号最小的通道被转换,其他通道被忽略。”这句话怎么理解?
  “软件使能”指的是使能的哪一步?是从设置 P1_MFP 开始就算使能?还是最后的  ADCR |= ADEN;   ADCHER  |= CHEN1;   ADCR |= ADST;算使能   ?     
  如何做到随心所欲的转换任何一个AD通道?



沙发
long029044| | 2013-11-12 12:47 | 只看该作者
AD转换,设成单次转换,所有通道都可以的。
使能 -ADEN
随心所欲的转换任何一个AD通道- 他们BSP都有 源代码。
设置选自己需要的通道直接调用通道选择函数就ok

使用特权

评论回复
板凳
DLF5|  楼主 | 2013-11-12 21:55 | 只看该作者
我用的是直接寄存器方式。用例程改的也不行。

使用特权

评论回复
地板
DLF5|  楼主 | 2013-11-20 13:50 | 只看该作者
又遇到一个小问题,哪位朋友知道给解答一下。

PWM捕捉问题,我用P2.6口捕捉,当减法定时器到0时产生中断,这个中断怎么用?是否是直接使能PWM中断使能寄存器,寄PIERB|=PWMIE6?

使用特权

评论回复
5
DLF5|  楼主 | 2013-11-23 23:11 | 只看该作者
没人这么用么?

使用特权

评论回复
6
east森林| | 2013-11-25 17:48 | 只看该作者
学习中

使用特权

评论回复
7
万法归宗| | 2013-11-25 17:54 | 只看该作者
进来看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

71

帖子

0

粉丝