打印

USB JoyStickMouse和串口的奇怪问题

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

我是使用ST官方的USB例子
编译能通过,下载到板上,电脑能找到USB鼠标
int main(void)
{
  Set_System();
  
  USB_Interrupts_Config();
  
  Set_USBClock();
  USB_Init();  // 运行了这条语句就不能使用串口1了
               // 没有运行了这条语句,就能使用串口1
               // 串口初始化是没有问题的
  uart_initial();
xa=(volatile unsigned int *)0x40005C40;
//  指向 USB控制寄存器(USB_CNTR)指向CNTR寄存器
//  地址偏移:0x40
//  复位值:0x0003
//  绝对地址 0x40005C40
*xa=0;   //查找了很长时间,最终是这个寄存器的中断在作怪
        // 如果执行这条语句把所有的USB中断都屏蔽掉
        // 那么就可以使用串口了
while(1)
{

   p_time++;

   p_time&=0x3ffff;
if(p_time==0)
  {

    USART_SendData(USART1,0xa5);   //不能安放送数据了

  }

if (bDeviceState == CONFIGURED)
    {
        if ((JoyState() != 0) && (PrevXferComplete))
       {
        Joystick_Send(JoyState());
        }
    }
  }
}
另外
先设置好 BOOT0 BOOT1
选择好从用户程序运行, 程序是在运行USB_Init(); 且不屏蔽CNTR寄存器的中断情况之下
使用ST ISP下栽软件
把程序download到芯片  勾选 Jump to user program
然后运行到用户程序,也是可以使用串口的

再然后设置好 BOOT0 BOOT1
选择好从用户程序运行,按下复位
却不能使用串口了
(概括来说就是
同样的程序,在烧机之后,自动就运行到用户程序就能使用串口
复位重启,运行到用户程序就不能使用串口
)


高分求答案  非常感谢!!!!!!!!!!!!!!!!!

沙发
airwill| | 2013-9-6 14:24 | 只看该作者
我觉得是你的软件的串口设置问题.
isp 直接跳转过来, 那么 usart 已经有 ISP 软件设置过, 所以还可以用.
直接用户程序, 估计 usart  的初始化没有做好或者没有初始化. 导致不能用.

使用特权

评论回复
板凳
chuangpu| | 2013-9-6 19:16 | 只看该作者
按版主的提示  相信版主的能力   相信版主的判断能力

使用特权

评论回复
地板
code|  楼主 | 2013-9-9 10:33 | 只看该作者
这50分应该全部给2楼

使用特权

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

本版积分规则

个人签名:"></a><img src="http://uc2.21ic.com/avatar.php?uid=319240&size=middle"></img><a href="

40

主题

150

帖子

1

粉丝