OpenEdv-开源电子网

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

mini板的串口,下载程序后调试助手收不到数据,boot设置后,重启则可以???

[复制链接]

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-2-26
在线时间
0 小时
发表于 2014-7-8 14:39:10 | 显示全部楼层 |阅读模式
5金钱
int main(void)
{
unsigned char temp;
unsigned int i=0;
unsigned short m;
unsigned char key;
unsigned char recbuff[64];

NVIC_Configuration(); //NVIC_PriorityGroup_2 //0~3  | 0~3
delay_init(72);

LED_Init(); //推挽输出
for (temp=0;temp<6;temp++)
{
    LED2_RED = !LED2_RED;
    // feed_iwdg();
    delay_ms(200);

}
delay_ms(500);

com_init(COM1,115200);
com_init(COM2,115200);
delay_ms(100);

pwm_init();
key_init();
exti_init();

//0~1000次 即一次为1000*0.1 = 100ms

timebase_init(1799,500); //APB1=72MHz,1799次分频,Ftim = 40kHz ,T = 0.025ms //0.025*500 = 0.125ms一次中断



printf("\r\n机器重启\r\n");
printf("\r\n等待中...\r\n");
debugstring("-------------\r\n");
memcpy(recbuff,"\x12\x34",2);
debugdata(recbuff,2,1);
    ......
    ......
}

com_init函数用库函数写的,应该没有什么问题。
void com_init(com_num num, u32 baud){

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1  | RCC_APB2Periph_GPIOA,ENABLE);
//| RCC_APB2Periph_AFIO
//USART1_TX   PA.9
gpio_config.GPIO_Pin = GPIO_Pin_9;
gpio_config.GPIO_Speed = GPIO_Speed_50MHz;
gpio_config.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &gpio_config);

//USART1_RX  A.10
gpio_config.GPIO_Pin = GPIO_Pin_10;
gpio_config.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &gpio_config);  

usart_init_pra.USART_BaudRate = baud;
usart_init_pra.USART_WordLength = USART_WordLength_8b;
usart_init_pra.USART_StopBits = USART_StopBits_1;
usart_init_pra.USART_Parity   = USART_Parity_No; //不奇偶校验
usart_init_pra.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //硬件流控制失能
usart_init_pra.USART_Mode     = USART_Mode_Rx | USART_Mode_Tx; //使能接收发送

USART_Init(USART1,&usart_init_pra); //初始化参数

//NVIC配置 分组已经配置 
nvic_config.NVIC_IRQChannel = USART1_IRQn;
nvic_config.NVIC_IRQChannelPreemptionPriority = 3;
nvic_config.NVIC_IRQChannelSubPriority = 6;
nvic_config.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvic_config);

USART_ClearFlag(USART1,USART_FLAG_TC); //复位后被硬件置1,需要清除负责容易丢失第一个数据
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //允许接收中断
USART_Cmd(USART1,ENABLE); //使能串口1
}

大家可以不看代码,有人遇到过这样的现象没有?我至今还没有找到问题






正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-7-8 17:29:19 | 显示全部楼层
没遇到过哦。代码下载后,其他代码有没有在跑?
站在巨人的肩膀上不断的前进。。。
回复

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-2-26
在线时间
0 小时
 楼主| 发表于 2014-7-8 21:41:10 | 显示全部楼层
haixi回复【2楼】xiaoyan:
---------------------------------
 下载后定时器是在工作的,程序是在跑的,还不像是死机
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-8 22:22:31 | 显示全部楼层
可以仿真看看...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-2-26
在线时间
0 小时
 楼主| 发表于 2014-7-9 09:07:25 | 显示全部楼层
最新发现的结果是,有一个定时器在工作,每隔几秒LED闪一下,在这个定时器中断中要是打印东西,则串口可以工作,一切都可以工作,不用重新设置boot,看来只能仿真了

回复

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-2-26
在线时间
0 小时
 楼主| 发表于 2014-7-28 23:26:10 | 显示全部楼层
flash不能多次擦出啊,怎么回事,调试信息出来的地址都是对的

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-29 00:13:19 | 显示全部楼层
回复【6楼】豪放的笔杆:
---------------------------------
可以多次擦除的,我们的IAP例程,或者flash模拟EEPROM例程,建议你看看这两个例程。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-2-26
在线时间
0 小时
 楼主| 发表于 2014-8-11 17:17:21 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
感觉是不是要延时,或者其他。在测试中...
谢谢原子哥
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 08:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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