STM32F030C8 IO口设置后无法完成下载
如题,我想设置PA0-3的IO口为推挽输出模式,按照参考手册设置如下GPIOA->MODER&=0xffffff00;
GPIOA->MODER|=0x00000055;
GPIOA->ODR|=0x000f;
这样设置后,jlink无法完成下载,按照库函数方式设置后就可以,如下
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
不知道哪里出了问题,烦请各位帮忙解答一下,谢谢
本帖最后由 xyc2690 于 2015-1-16 15:36 编辑
提示什么错误啊?
推挽输出是另外一个寄存器 GPIOA_OTYPER
GPIOA->OTYPER &= 0xFFFFFFF0; //推挽输出
GPIOA->OSPEEDR &= 0xFFFFFF00;
GPIOA->OSPEEDR |= 0x000000FF; // 输出速度 HIGH
估计把swd占用了! 大秦正声 发表于 2015-1-16 14:16
估计把swd占用了!
不是吧。库就可以,寄存器不可以应该不是占用了SWD的原因
你开始清位的时候怎么是0xffffff00.?0-3清位不对吧? xyc2690 发表于 2015-1-16 14:49
提示什么错误啊?
推挽输出是另外一个寄存器 GPIOA_OTYPER
输出模式,推挽没设置,应该默认吧? AndyYau-268557 发表于 2015-1-16 15:25
你开始清位的时候怎么是0xffffff00.?0-3清位不对吧?
正常的啊 用flash loader把程序擦除了,还能再烧写吗? 应该是把SWD口给关闭了。你把 GPIOA->ODR 这个去掉试试。 xyc2690 发表于 2015-1-16 14:49
提示什么错误啊?
推挽输出是另外一个寄存器 GPIOA_OTYPER
搞定了,没写全吗难道说
GPIOA->MODER&=0xffffff00;
GPIOA->MODER|=0x00000055;
GPIOA->OTYPER&=0x0000fff0;
GPIOA->OTYPER|=0x00000000;
GPIOA->OSPEEDR&=0xffffff00;
GPIOA->OSPEEDR|=0x000000ff;
GPIOA->PUPDR&=0xffffff00;
GPIOA->PUPDR|=0x00000055;
GPIOA->ODR|=0x000f;
页:
[1]
2