OpenEdv-开源电子网

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

stm32 串口用中断方法进行发送我设置好了 中断但是不能运行 求大神帮忙

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-11-3
在线时间
0 小时
发表于 2014-11-3 19:18:39 | 显示全部楼层 |阅读模式
5金钱
这是主程序:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"


 int main(void)
 { 
u8 t;
u8 len; 
u16 times=0; 
 
delay_init();      
NVIC_Configuration();
uart_init(9600);
LED_Init(); 
 
while(1)
{

if(USART_RX_STA&0x8000)
{   
len=USART_RX_STA&0x3fff;
printf("\r\n?ú·???????????:\r\n");
if(USART_SX_STA)
{
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF[t];
}
if(USART_RX_BUF[t]=='\0')
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
USART_SX_STA=0;
}

printf("\r\n\r\n");
USART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
printf("\r\nALIENTEK MiniSTM32??·?°? ?®?????é\r\n");
printf("??????×?@ALIENTEK\r\n\r\n\r\n");
}
if(times%200==0)printf("。。。。。\r\n");  
if(times%30==0)LED0=!LED0;
delay_ms(10);   
}
}  
}
下面是中断处理函数:
if(USART_GetITStatus(USART1,USART_IT_TXE)==RESET)
{
USART_SX_STA=1;
}
uart_init中开的中断,其他设置跟实验3一样
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);//这是开中断

最佳答案

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

回复【3楼】lhj: --------------------------------- if(USART_GetITStatus(USART1,USART_IT_TXE)==RESET)  这儿  该用"  !=  " 吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2014-11-3 19:18:40 | 显示全部楼层
回复【3楼】lhj:
---------------------------------
if(USART_GetITStatus(USART1,USART_IT_TXE)==RESET)  这儿  该用"  !=  " 吧
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2014-11-3 20:58:04 | 显示全部楼层
楼主   能把问题描述清楚点么   是不能发生中断? 
代码也不那么规范,看着费劲呐
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-11-3
在线时间
0 小时
 楼主| 发表于 2014-11-3 21:27:46 | 显示全部楼层
回复【2楼】lycreturn:
----------------------------
其实  就是按这个方式配好以中断发送的方式进行发送数据
但是我运行了 没错但是就一直在中断里面 进不到while中 
调试了很久 找不到原因
格式问题 我会注意的 这是我第一次发帖 所以还是有点不大会
 纯小白一枚
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-11-3
在线时间
0 小时
 楼主| 发表于 2014-11-3 21:52:07 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
嗯  这里  我调试过 但还是不行
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-11-3
在线时间
0 小时
 楼主| 发表于 2014-11-3 22:13:47 | 显示全部楼层
我采用mdk在线调试时 结果是卡在了LED灯初始化里面
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1841
金钱
1841
注册时间
2014-6-27
在线时间
982 小时
发表于 2014-11-4 08:25:44 | 显示全部楼层
回复【3楼】lhj:
---------------------------------
用中断不是这样写的,我用中断发送接收都可以,你多看看代码。
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-11-3
在线时间
0 小时
 楼主| 发表于 2014-11-4 08:44:24 | 显示全部楼层
回复【7楼】TinyBoy:
---------------------------------
那要怎样写呢 我才开始学
就想从基础学起所以才会改这个
但跟我预想的完全不一样
能否告诉我思路错在哪?=.=
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-11-3
在线时间
0 小时
 楼主| 发表于 2014-11-4 11:52:39 | 显示全部楼层
调试好之后 能进入中断了也能运行 while里面的函数
可是问题来了 
发送的的数据是空的。。空的。。
瞬间不懂了
大虾们 有么来指点下迷津的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-29 19:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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