各位老哥,我想问问STM32怎么用按键控制串口打印,我现在在弄用按键控制串口输出RTC时钟,单独用串口打印RTC时钟我已经搞出来了,就是怎么用按键控制串口打开,按键的话我给它加入了按键判断,但是按下按键以后,LED灯可以控制,串口没反应,请问哪里出问题了?
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "beep.h"
#include"usart.h"
#include"rtc.h"
int main(void)
{
vu8 key=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
BEEP_Init(); //初始化蜂鸣器端口
RTC_Init(); //初始化时钟
uart_init(115200);
{
key=KEY_Scan(0); //得到键值
if(key)
{
switch(key)
{
case WKUP_PRES://打印时间
LED0=!LED0;
printf("\r\nRTC Time:%d-%d-%d %d:%d:%d %f \r\n",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);//输出时间 );//向串口1发送数据
break;
这是主函数里面的我写的代码
按键的管脚和uart有冲突吗?uart打印是否重映射到了printf
串口是复用推挽输出,不经过输出数据寄存器的,比如程序中的串口1,PA9、10,而按键判断的是输出寄存器的位和内容