USB JoyStickMouse和串口的奇怪问题

[复制链接]
1961|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

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