OpenEdv-开源电子网

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

请问大家精英版串口通信控制LED的亮灭程序,现在输入相关数字,为什么灯没有反应

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2021-3-26
在线时间
6 小时
发表于 2021-4-10 22:11:18 | 显示全部楼层 |阅读模式
3金钱
void usart1_Init()
{
   GPIO_InitTypeDef GPIO_InitStrue;
   USART_InitTypeDef USART_InitStrue;
   NVIC_InitTypeDef NVIC_InitStructure;

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

   GPIO_InitStrue.GPIO_Mode = GPIO_Mode_AF_PP;
   GPIO_InitStrue.GPIO_Pin = GPIO_Pin_9;
   GPIO_InitStrue.GPIO_Speed = GPIO_Speed_50MHz;   //发送串口PB10
   GPIO_Init(GPIOA,&GPIO_InitStrue);

   GPIO_InitStrue.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_InitStrue.GPIO_Pin = GPIO_Pin_10;   //接收串口PB11
   GPIO_Init(GPIOA,&GPIO_InitStrue);

   NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 1;//抢占优先级
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //子优先级
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   //IRQ通道使能
   NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化NVIC寄存器

   USART_InitStrue.USART_BaudRate = 115200;   //波特率
   USART_InitStrue.USART_WordLength = USART_WordLength_8b;   //8位数据
   USART_InitStrue.USART_StopBits = USART_StopBits_1;   //停止位
   USART_InitStrue.USART_Parity = USART_Parity_No;   //无奇偶校验
   USART_InitStrue.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
   USART_InitStrue.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
   USART_Init(USART1,&USART_InitStrue);

   USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);   //接收中断

   USART_Cmd(USART1,ENABLE);
}

void USART1_IRQHandler()
{
   u8 a;
   if(USART_GetITStatus(USART1,USART_IT_RXNE) == 1)   //该函数用于中断检测
   {
   a = USART_ReceiveData(USART1);
   if(a == 101)
   GPIO_SetBits(GPIOE,GPIO_Pin_5);
   if(a == 102)
   GPIO_SetBits(GPIOB,GPIO_Pin_5);
   if(a == 103)
   {
      GPIO_ResetBits(GPIOE,GPIO_Pin_5);
      GPIO_ResetBits(GPIOB,GPIO_Pin_5);
   }
//   USART_SendData(USART1,a);
//   while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == 0);
   }
}

void led1_Init()   
{
    GPIO_InitTypeDef GPIO_InitStrue;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE,ENABLE);

GPIO_InitStrue.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStrue.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStrue.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOB,&GPIO_InitStrue);
       
GPIO_InitStrue.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStrue.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStrue.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOE,&GPIO_InitStrue);

//GPIO_SetBits(GPIOB,GPIO_Pin_5);
//GPIO_SetBits(GPIOE,GPIO_Pin_5);               
}

int main()
{
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
   led1_Init();
//   pwm1_Init(200-1,7200-1);   
   usart1_Init();
   while(1);
}

最佳答案

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

可以参考这个,发送LEDON就是开灯,发送LEDOFF就是关灯
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-4-10 22:11:19 | 显示全部楼层
可以参考这个,发送LEDON就是开灯,发送LEDOFF就是关灯

战舰串口1开关灯实验.zip

2.57 MB, 下载次数: 126

回复

使用道具 举报

11

主题

131

帖子

0

精华

高级会员

Rank: 4

积分
757
金钱
757
注册时间
2020-5-11
在线时间
71 小时
发表于 2021-4-12 16:02:56 | 显示全部楼层
不错不错
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 18:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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