stm32f103c8t6 usart1不工作 5
初学stm32f103,LED闪烁已成功,在此基础上,在LED每次闪烁后,通过USART1向外发送一个数字,从0开始累加。发现问题如下:1、LED闪烁正常。2、单步调试发...
初学stm32f103,LED闪烁已成功,在此基础上,在LED每次闪烁后,通过USART1向外发送一个数字,从0开始累加。发现问题如下:1、LED闪烁正常。2、单步调试发现LED闪烁后发送数据调用正常。3、通过逻辑分析仪发现USART1的PA9无数据输出,始终都是高电平。请问到底我的程序什么地方错了呢?
展开
展开全部
首先GPIO配置中因为你是使用了USART复用功能所以需要打开以下时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
一般我的STM32串口发送多配置为DMA模式,读取使用中断模式。串口确实可以不使用中断模式(采用轮询但是很影响芯片效率,除非你得单片机就做一个串口读写)。而你的程序配置了串口读中断使能但是没有配置中断NVIC相关。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是程序里没有配置好,串口没有正常工作,要么发送的数据没有发送成功。硬件连接有问题仿真也能看到信号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-08-16
展开全部
你是不是少了一个NVIC初始化?还有初始化后是不是清下标记比较好
//Usart1 NVIC ÅäÖÃ
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3 ;//ÇÀÕ¼ÓÅÏȼ¶3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //×ÓÓÅÏȼ¶3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨµÀʹÄÜ
NVIC_Init(&NVIC_InitStructure);
//Usart1 NVIC ÅäÖÃ
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3 ;//ÇÀÕ¼ÓÅÏȼ¶3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //×ÓÓÅÏȼ¶3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨµÀʹÄÜ
NVIC_Init(&NVIC_InitStructure);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询