[STM32] ucos和外部时钟模式2 二者冲突吗

[复制链接]
1568|5
 楼主| jjg809898461 发表于 2014-2-8 10:30 | 显示全部楼层 |阅读模式
大家好,自己做了一个采集DS18B20的一个小程序,使用了外部时钟模式2,已经调试可以使用了。但是移植到ucos上就有问题了,每次采集的数据都是0,请大神们帮我看看吧,下面发代码
 楼主| jjg809898461 发表于 2014-2-8 10:34 | 显示全部楼层
void DCS3200_Test(uint8_t k)
{
        OS_CPU_SR cpu_sr=0;
        uint16_t i,j;       
        uint32_t data[9][4];
        uint32_t max,min,count,Average;
        int pos[][4]={
{100,140,24,8}, {132,140,24,8}, {164,140,24,8}, {196,140,24,8}, {228,140,24,8}, {260,140,24,8}, {292,140,24,8}, {324,140,24,8}, };
//   TIM2->SMCR&= 0XBFFF;//14位清零,禁止使用外部时钟模式2
  TIM2->SMCR|= 0X4000;//使能外部时钟模式2

        GPIO_ResetBits(GPIOC, GPIO_Pin_0 );        //使能端口

  TIM2_Configuration();       
//   printf("2 \n");       
                //Average = 0;                          //注意全局变量在这里的初始化问题       
for(i=0;i<8;i++)
        {
//                 printf("3 \n");       
    for(j=0;j<4;j++)
                        {
//                                 printf("4 \n");       
                                switch (j)
                                {
                                         case 0:
                               
                                                GPIO_ResetBits(GPIOC, GPIO_Pin_2 | GPIO_Pin_3); //选择红色滤光器       
                                                pString = "红色频率";                                          
                                                break;                                       
                                         case 1:                                                                                
                                                GPIO_SetBits(GPIOC, GPIO_Pin_2 | GPIO_Pin_3);   //选择绿色滤光器       
                                                pString = "绿色频率";                                          
                                                break;       
                                         case 2:                                                                        
                                                GPIO_ResetBits(GPIOC, GPIO_Pin_3);              //选择蓝色滤光器
                                                GPIO_SetBits(GPIOC, GPIO_Pin_2);       
                                                pString = "蓝色频率";                                          
                                                break;       
                                         case 3:                                                                                       
                                                GPIO_ResetBits(GPIOC, GPIO_Pin_2);              //选择白色滤光器
                                                GPIO_SetBits(GPIOC, GPIO_Pin_3);       
                                                pString = "白光频率";       
                                                break;                               
               
                                }
            TIM_SetCounter(TIM2,0);
//                delay_us(10000);// 10000 * 10us = 100ms
                                delay_ms(100);
                Frequency=10*TIM_GetCounter(TIM2);//0.1s内计数波形个数

 楼主| jjg809898461 发表于 2014-2-8 11:14 | 显示全部楼层
顶一下,大神们帮帮小弟啊
 楼主| jjg809898461 发表于 2014-2-8 15:51 | 显示全部楼层
有进展了,我忘了配置tim2 时钟了,不过配置后是有数据,但是乱码,不知道哪还有问题,继续研究
 楼主| jjg809898461 发表于 2014-2-10 11:18 | 显示全部楼层
问题解决了,是delay配置问题,使用了原子的时钟配置后就好了,太感谢原子了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部