OpenEdv-开源电子网

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

怎么使用串口发送数字1呀?

[复制链接]

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
发表于 2017-6-8 15:46:27 | 显示全部楼层 |阅读模式
想实现一个功能:输入数字1,实现led1灯每隔1秒闪烁,输入数字2,实现led2每隔两秒闪烁,输入数字3,实现led1和led2都关闭,但是我一直不知道怎么去输入,也分不清这个串口,跪求大神指点
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
 楼主| 发表于 2017-6-8 16:47:18 | 显示全部楼层
我直接使用按键1去实现led1,按键2实现led2,按键3关闭,也是可以的,非要使用串口吗?
回复 支持 反对

使用道具 举报

19

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2014-10-19
在线时间
42 小时
发表于 2017-6-9 11:17:45 | 显示全部楼层
同意楼上的说法
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2017-6-9 13:52:26 | 显示全部楼层
打开串口调试助手 直接在接收区里键盘敲123,单片机串口就可以接收123了
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
 楼主| 发表于 2017-6-11 09:26:51 | 显示全部楼层
DongInker 发表于 2017-6-9 13:52
打开串口调试助手 直接在接收区里键盘敲123,单片机串口就可以接收123了

我是这样写的,所有参考的数据,都是对的,但是下到板子上面,使用串口工具调试,一点反应也没有,但是提示灯可以亮着
1496476747(1).png
QQ图片20170611092401.png
QQ图片20170611092514.png
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-5-25
在线时间
9 小时
发表于 2017-6-12 10:33:21 | 显示全部楼层
我觉着是不是读数据不在循环内?要是把检查程序是否运行的那个放在while里应该就好了
回复 支持 反对

使用道具 举报

21

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
467
金钱
467
注册时间
2013-7-12
在线时间
86 小时
发表于 2017-6-12 11:10:29 | 显示全部楼层
貌似串口都没有初始化,还有res应该作全局变量放在接受中断中。
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
 楼主| 发表于 2017-6-12 13:33:37 | 显示全部楼层
SR_LI 发表于 2017-6-12 11:10
貌似串口都没有初始化,还有res应该作全局变量放在接受中断中。

串口初始化了,那个res设置为全局变量我也试过了,但是效果还是一样的,我估计是这个开发板的问题,因为他给的例子里面都是用寄存器和函数库混合使用的
回复 支持 反对

使用道具 举报

13

主题

175

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2016-4-30
在线时间
141 小时
发表于 2017-6-12 13:49:02 | 显示全部楼层
本帖最后由 执迷 于 2017-6-12 13:57 编辑

、、、、、、、
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2017-6-12 13:54:48 | 显示全部楼层
第一,你串口读数据只有初始化的时候读取一次,等你发的时候,数据已经不更新了。
这句话要放到while(1)循环里面去循环读取,最好有点延时。
第二,你上位机发送的时候请去掉发送新行(会发送0x0d 0x0a)并且勾上16进制发送(默认是发送字符串)。如果想要发送字符1,程序里比较的时候与‘1’或者0x31比较。

态度决定一切
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
 楼主| 发表于 2017-6-12 15:01:23 | 显示全部楼层
冰封嗜魔 发表于 2017-6-12 13:54
第一,你串口读数据只有初始化的时候读取一次,等你发的时候,数据已经不更新了。
这句话要放到while(1)循 ...

确实是勾选16进制发送就可以接受发送数据了,但是只有一次,我怎么改都只能一次,做不到led灯的闪烁,求解,跪谢
QQ图片20170612145857.png
QQ图片20170612145906.png
QQ图片20170612145913.png
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2017-6-12 15:43:53 | 显示全部楼层
假如爱有天意123 发表于 2017-6-12 15:01
确实是勾选16进制发送就可以接受发送数据了,但是只有一次,我怎么改都只能一次,做不到led灯的闪烁,求 ...

你这个基础还要好好打一打,没有人会帮你写程序的,自己细心点看例程。串口中断里面不需要while(1),只要有中断,就会进。
改为:
u16 res = 0;
void USART1_IRQHandler(void)
{
    if(USART_GetITStatus(USART1, USART_IT_RXNE))
    {
        res = USART_ReceiveData(USART1);
        USART_SendData(USART1, res);
    }
}

main.c里面改为:
extern u16 res;

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    delay_init(168);
    LED_Init();
    My_USART1_Init();

    while(1)
    {
        if(res == 1)
        {
            /* 自己填入要实现的效果 */
        }
        else if(res == 2)
        {
            /* 自己填入要实现的效果 */
        }
        else if(res == 3)
        {
            /* 自己填入要实现的效果 */
        }
        else if(res == 4)
        {
            /* 自己填入要实现的效果 */
        }
    }
}
态度决定一切
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
 楼主| 发表于 2017-6-12 16:37:34 | 显示全部楼层
冰封嗜魔 发表于 2017-6-12 15:43
你这个基础还要好好打一打,没有人会帮你写程序的,自己细心点看例程。串口中断里面不需要while(1),只要 ...

谢谢大神,已经ok啦,非常感谢,我会努力学习的
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2017-6-12 17:05:13 | 显示全部楼层
假如爱有天意123 发表于 2017-6-12 16:37
谢谢大神,已经ok啦,非常感谢,我会努力学习的

客气了,好好加油。
态度决定一切
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2017-5-24
在线时间
13 小时
 楼主| 发表于 2017-6-12 17:29:08 | 显示全部楼层
冰封嗜魔 发表于 2017-6-12 17:05
客气了,好好加油。

好的,非常感谢
回复 支持 反对

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2017-10-26
在线时间
13 小时
发表于 2017-11-10 18:49:17 | 显示全部楼层
发送是字符  要用单引号
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-19 03:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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