中级会员
 
- 积分
- 209
- 金钱
- 209
- 注册时间
- 2016-9-9
- 在线时间
- 84 小时
|
1金钱
本帖最后由 dreamARM 于 2016-10-8 17:52 编辑
printf 写到主程序里,不光不输出数据,整个程序都没有任何动作,如果不用它,直接用USART_SendData发数据就好用,大家写程序遇到过这个问题吗? 主代码如下:
#include "stm32f10x.h"
#include "delay.h"
#include "exti.h"
#include "usart.h"
#include "stdio.h"
#include "sys.h"
void USART1_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
res=USART_ReceiveData(USART1);
USART_SendData(USART1,res);
}
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
My_USART1_Init();
delay_init(); //延时函数初始化
while(1)
{
USART_SendData(USART1,0xaa);
// printf("that is a hero lies in you\r\n"); // 不屏蔽这段整个程序都不好用
delay_ms(100);
}
}
此程序功能是串口平时发OxAA,同时如果接收到数据就发送接收的。
问题是: 加了printf 编译不报错,但整个程序就不好使了,就是那种完全没有反应(也不发0xaa)如果屏蔽printf 程序就好用了,
几天了,问题还是没弄明白,求解? 谢谢大家!!
@zuozhongkai
|
最佳答案
查看完整内容[请看2#楼]
参考我们的串口通信实验,加入半主机模式代码。才可以,否则会死机。 或者勾选use microlib也可以。
|