OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4936|回复: 1

新手遇到的两个问题,求解答、

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-8-3
在线时间
4 小时
发表于 2014-11-2 10:28:20 | 显示全部楼层 |阅读模式
5金钱
这个是用Template模版下编写的程序,我想让PB4下降触发沿的时候向计算机随便输出一个数,但是为什么我把PB4只要一节GND,它就一直发送数据?除非复位才能停下。
还有个问题,如果没有#include "stm32f10x_exti.h"这个语句的时候
EXTI_InitTypeDef aa; 这一行一行就报错,use of undeclared identifier "EXTI_InitTypeDef。 这个是为什么?

程序如下:
#include "stm32f10x.h"
#include "delay.h"
#include "stm32f10x_exti.h"
void serial_init(void);
void NVIC_init(void);

int main(void)
{
serial_init();
delay_init();
NVIC_init();
NVIC_Configuration();
while(1)
{
;
}
}

void NVIC_init(void)
{
EXTI_InitTypeDef aa;
NVIC_InitTypeDef bb;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource4);

aa.EXTI_Mode = EXTI_Mode_Interrupt;
aa.EXTI_Trigger = EXTI_Trigger_Falling;
aa.EXTI_Line = EXTI_Line4;
aa.EXTI_LineCmd = ENABLE;
EXTI_Init(&aa);

bb.NVIC_IRQChannel = EXTI4_IRQn;
bb.NVIC_IRQChannelPreemptionPriority = 0x02;
bb.NVIC_IRQChannelSubPriority = 0x02;
bb.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&bb);
}
void serial_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef aa;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);
USART_DeInit(USART1);

aa.USART_BaudRate = 9600;
aa.USART_WordLength = USART_WordLength_8b;
aa.USART_StopBits = USART_StopBits_1;
aa.USART_Parity = USART_Parity_No;
aa.USART_Mode =  USART_Mode_Rx|USART_Mode_Tx;
aa.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_Init(USART1,&aa);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOA,&GPIO_InitStructure);

USART_Cmd(USART1,ENABLE);


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}

void EXTI4_IRQHandler(void)
{
USART_SendData(USART1, 0x12);
EXTI_ClearITPendingBit(EXTI_Line3);
}

最佳答案

查看完整内容[请看2#楼]

因为JTAG配置,PB4复位后默认置于上拉模式 得让PB4设置成普通IO才行 也就是要禁用JTAG 代码怎么写的。。我查查。。 [mw_shl_code=c,true]关闭JTAG模式。 GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); //释放JNTRST PB4脚[/mw_shl_code]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2014-2-24
在线时间
4 小时
发表于 2014-11-2 10:28:21 | 显示全部楼层


因为JTAG配置,PB4复位后默认置于上拉模式
得让PB4设置成普通IO才行
也就是要禁用JTAG
代码怎么写的。。我查查。。
[mw_shl_code=c,true]关闭JTAG模式。 GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); //释放JNTRST PB4脚[/mw_shl_code]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 19:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表