野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9619|回复: 2

STM32串口通信控制LED亮灭

[复制链接]
发表于 2015-7-19 10:26:33 | 显示全部楼层 |阅读模式
用中断控制的时候,判断发送数据是否为控制LED的字符的程序是要写在中断服务函数里吗?用不用加定时器呀?不能让程序一直循环,进入中断么?求助,如果有程序最好啦~谢各位大神!
回复

使用道具 举报

发表于 2015-7-20 08:56:09 | 显示全部楼层
用中断的话,都需要编写中断服务函数,具体在里面可以加标志判断或者直接判断字符也行,不要占用中断太长时间就好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-22 01:26:48 | 显示全部楼层
flyleaf 发表于 2015-7-20 08:56
用中断的话,都需要编写中断服务函数,具体在里面可以加标志判断或者直接判断字符也行,不要占用中断太长时 ...

void USART1_IRQHandler(void)
{
uint16_t ch;

if(USART_GetFlagStatus(USART1, USART_FLAG_TC) == SET)
{
   //ch = USART1->DR;
ch = USART_ReceiveData(USART1);
switch(ch)
{
case 1: LED1_ON;Delay(0x0FFFEF);LED1_OFF;break;
case 2: LED2_ON;Delay(0x0FFFEF);LED2_OFF;break;
case 3: LED3_ON;Delay(0x0FFFEF);LED3_OFF;break;
}
}
中断函数这样写有什么问题呢?可以收发数据,但是不能控制LED
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 01:46 , Processed in 0.033872 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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