OpenEdv-开源电子网

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

STM32串口USART1中断接收和中断发送

  [复制链接]

80

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
406
金钱
406
注册时间
2018-11-20
在线时间
25 小时
发表于 2019-7-11 15:56:34 | 显示全部楼层 |阅读模式
  先贴出中断函数:

  1. [plain] view plain copy

  2.   void USART1_IRQHandler(void){

  3.   IF (USART_GetiTStatus(USART1, USART_IT_RXNE) != RESET) {

  4.   USART_ClearITPendingBit(USART1, USART_IT_RXNE);

  5.   USART1_Buffer[i++]=USART_ReceiveData(USART1); //USART1_Buffesh是一个自己定义的接收数组

  6.   if(i>3){

  7.   SendFlag = 1;

  8.   }

  9.   }

  10.   if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET){ //USART_IT_TC这里也可替换

  11.   if(Open_Send_Flag){ //这是一个发送的标志

  12.   uart1_sendstring(temp_data);

  13.   USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //USART_IT_TC

  14.   Open_Send_Flag = 0;

  15.   }

  16.   else{

  17.   USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //USART_IT_TC

  18.   }

  19.   }

  20.   }
复制代码

  发送字符串的函数:

  1. [plain] view plain copy

  2.   void uart1_sendstring(uint8_t* cp)

  3.   {

  4.   while((*cp)!='\0')

  5.   {

  6.   Usart1_Send_isr(*cp);

  7.   cp++;

  8.   }

  9.   }
复制代码

  发送单个字符的函数:

  1. [plain] view plain copy

  2.   void Usart1_Send_isr(uint8_t ch){

  3.   USART_SendData(USART1, (uint8_t)ch);

  4.   while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET ); //这里做缓冲区是否发送完判断

  5.   }
复制代码

  然后在中断函数外面发送数据的时候,打开发送中断。USART_ITConfig(USART1, USART_IT_TXE, ENABLE); //USART_IT_TC
  之后再贴出两个简单的串口接收和发送的测试小例子:
  第一种:中断接收并把接收到的数据直接发送。

  1. [plain] view plain copy

  2.   void USART1_IRQHandler(void){

  3.   unsigned char RxData;

  4.   if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {

  5.   USART_ClearITPendingBit(USART1, USART_IT_RXNE);

  6.   RxData=USART_ReceiveData(USART1);

  7.   RxData = RxData + 1;

  8.   USART_SendData(USART1,RxData);

  9.   }

  10.   }
复制代码

  优点:简单,适合很少量数据传输。
  缺点:无缓存区,并且对数据的正确性没有判断,数据量稍大可能导致数据丢失 。
  第二种:中断接收之后判断数据头和数据尾,如果正确就直接发送出去。

  1. [plain] view plain copy

  2.   void USART1_IRQHandler(void){

  3.   if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {

  4.   USART_ClearITPendingBit(USART1, USART_IT_RXNE);

  5.   USART1_Buffer[i++]=USART_ReceiveData(USART1);

  6.   }

  7.   if((USART1_Buffer[0] == 0x01) && (USART1_Buffer[i-1] == 0x02)){

  8.   Flag = 1;

  9.   }

  10.   if(USART_GetFlagStatus(USART1,USART_FLAG_ORE) == SET){ //溢出,不明白?

  11.   USART_CleaRFlag(USART1,USART_FLAG_ORE);

  12.   USART_ReceiveData(USART1);

  13.   }

  14.   if(Flag){

  15.   for(j = 0;j<20;j++){

  16.   USART_SendData(USART1,USART1_Buffer[j]);

  17.   }

  18.   }

  19.   }
复制代码

  相关的stm32串口以及中断相关的资料


游客,如果您要查看本帖隐藏内容请回复


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-9-8
在线时间
2 小时
发表于 2019-9-9 16:45:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2014-12-20
在线时间
44 小时
发表于 2019-9-9 16:56:53 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

1

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2019-8-29
在线时间
31 小时
发表于 2019-9-10 11:01:29 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-4-25
在线时间
10 小时
发表于 2019-9-10 19:50:47 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

9

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
620
金钱
620
注册时间
2018-2-4
在线时间
62 小时
发表于 2019-9-11 07:47:28 | 显示全部楼层
不错,学习了。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-6-20
在线时间
1 小时
发表于 2019-9-11 21:09:04 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

38

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1380
金钱
1380
注册时间
2019-4-13
在线时间
204 小时
发表于 2019-10-28 14:46:35 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-7-15
在线时间
4 小时
发表于 2020-7-20 16:17:09 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2020-6-22
在线时间
11 小时
发表于 2020-7-27 20:24:11 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2020-5-29
在线时间
87 小时
发表于 2020-7-27 20:52:40 | 显示全部楼层
可以
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2019-12-25
在线时间
23 小时
发表于 2020-7-31 14:00:22 | 显示全部楼层
mark学习了
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2020-8-1
在线时间
14 小时
发表于 2020-8-3 09:40:47 来自手机 | 显示全部楼层
学习学习,挺不错的
回复 支持 反对

使用道具 举报

0

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2016-11-10
在线时间
61 小时
发表于 2020-9-24 00:38:17 | 显示全部楼层
学习一下串口中断
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2017-8-9
在线时间
6 小时
发表于 2020-9-25 16:12:10 来自手机 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-9-25
在线时间
1 小时
发表于 2020-9-25 18:13:15 | 显示全部楼层
ll

回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2020-9-30
在线时间
1 小时
发表于 2020-9-30 09:02:12 来自手机 | 显示全部楼层
大佬牛逼
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2020-8-20
在线时间
45 小时
发表于 2020-10-9 10:19:13 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2020-4-15
在线时间
44 小时
发表于 2020-10-26 20:51:12 | 显示全部楼层
666666666初学
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
258
金钱
258
注册时间
2019-1-6
在线时间
42 小时
发表于 2020-10-27 08:59:11 | 显示全部楼层
学习学习,谢谢分享
回复 支持 反对

使用道具 举报

4

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2019-4-9
在线时间
79 小时
发表于 2020-10-27 15:22:09 | 显示全部楼层
66666666
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2020-4-15
在线时间
44 小时
发表于 2020-10-27 20:22:20 | 显示全部楼层
66666666
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2020-10-29
在线时间
12 小时
发表于 2020-10-31 14:16:59 | 显示全部楼层
USART1中断接收和中断发
回复 支持 反对

使用道具 举报

5

主题

129

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2020-5-8
在线时间
66 小时
发表于 2020-11-3 12:08:55 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2019-4-13
在线时间
34 小时
发表于 2020-12-6 19:03:19 | 显示全部楼层
为啥要回复
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2018-7-4
在线时间
27 小时
发表于 2020-12-6 19:06:47 | 显示全部楼层
谢谢楼主。。。。。。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2020-4-11
在线时间
2 小时
发表于 2020-12-8 09:26:40 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2020-9-1
在线时间
10 小时
发表于 2020-12-20 21:00:08 | 显示全部楼层
看一看
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-11-1
在线时间
7 小时
发表于 2020-12-29 11:06:03 | 显示全部楼层
6666666
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2021-1-21
在线时间
33 小时
发表于 2021-1-22 14:04:39 | 显示全部楼层
学习学习..............
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2021-3-5
在线时间
12 小时
发表于 2021-3-30 00:09:46 | 显示全部楼层
1234567
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-3-21
在线时间
10 小时
发表于 2021-4-25 17:22:12 | 显示全部楼层
学习了学习了
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2020-8-9
在线时间
7 小时
发表于 2021-4-25 18:09:17 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2021-1-30
在线时间
3 小时
发表于 2021-4-30 21:08:10 | 显示全部楼层
不错

回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2021-1-5
在线时间
10 小时
发表于 2021-5-7 09:58:40 | 显示全部楼层
11111111111
回复 支持 反对

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2021-5-26 16:39:01 | 显示全部楼层
解释看明白了
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-8-2
在线时间
6 小时
发表于 2021-8-3 20:18:42 | 显示全部楼层
可以,学习学习
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2021-7-9
在线时间
12 小时
发表于 2021-11-7 06:28:26 | 显示全部楼层
6666666
回复 支持 反对

使用道具 举报

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
发表于 2021-11-8 14:28:33 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2021-9-29
在线时间
40 小时
发表于 2021-11-10 08:46:34 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-2-8
在线时间
9 小时
发表于 2021-11-11 11:04:37 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2018-11-26
在线时间
47 小时
发表于 2021-11-28 21:19:19 | 显示全部楼层
谢谢分享,zsbd.....
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2021-10-18
在线时间
22 小时
发表于 2021-12-22 17:28:53 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2022-1-4
在线时间
0 小时
发表于 2022-1-4 19:08:59 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

28

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1472
金钱
1472
注册时间
2021-8-10
在线时间
271 小时
发表于 2022-1-17 21:37:32 | 显示全部楼层
谢谢谢谢!!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2021-4-7
在线时间
2 小时
发表于 2022-3-3 22:00:32 | 显示全部楼层
学习中,谢谢
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-7-25
在线时间
4 小时
发表于 2022-3-11 06:56:22 | 显示全部楼层
感谢分享,实用
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2022-3-13
在线时间
2 小时
发表于 2022-3-13 12:23:18 | 显示全部楼层
太感谢了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2021-4-29
在线时间
4 小时
发表于 2022-6-24 13:58:56 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2021-4-6
在线时间
13 小时
发表于 2023-4-16 15:02:31 | 显示全部楼层
111111
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 19:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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