stm32 串口接收字符串的问题
#include#include "hw_config.h"
u8 tab;
u8 z=0;
u8 *p_uart1=tab;
int Flag=0;
/** @addtogroup STM32F10x_StdPeriph_Template
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/**
*名称:void Delay(void)
*参数:无
*返回:无
*功能:简单延时
**/
void Delay(void)
{
int x,y;
for(x=1000;x>0;x--)
for(y=1000;y>0;y--);
}
/**
* @briefMain program.
* @paramNone
* @retval None
*/
int main(void)
{
u8 table;
u8 *p=table;
int i;
SystemInit(); /*系统初始化*/
LED_Configuration();
USART_Configuration();
ADC_Configuration();
while (1)
{
LED1(1);
Delay();
LED1(0);
Delay();
if(Flag=1)//接收中断
{
for(i=0;i
RE:stm32 串口接收字符串的问题
已经按照六楼的说明改了程序#include
#include "hw_config.h"
u8 uart1_buf;
int count1=0;
int Flag=0;
/** @addtogroup STM32F10x_StdPeriph_Template
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/**
*名称:void Delay(void)
*参数:无
*返回:无
*功能:简单延时
**/
void Delay(void)
{
int x,y;
for(x=1000;x>0;x--)
for(y=1000;y>0;y--);
}
/**
* @briefMain program.
* @paramNone
* @retval None
*/
int main(void)
{
/* Add your application code here
*/
// u16 adcx1,adcx2,temp;
u8 table;
u8 *p=table;
// int i;
SystemInit(); /*系统初始化*/
LED_Configuration();
USART_Configuration();
ADC_Configuration();
while (1)
{
LED1(1);
Delay();
LED1(0);
Delay();
if(Flag==1)//接收中断
{
for(count1=0;count1 5)
{
Flag = 1;
count1 = 0;
}
}
}
这样子改 了之后 串口调试助手也是一个字符都收不到。 这是为什么。也就是说都没有判断到Flag=1么;
我编写的想法是:串口调试助手发送五个字节的数,stm32采用中断接收并返回给串口调试助手。 求大神们帮帮忙。
回复:stm32 串口接收字符串的问题
if(Flag=1)//接收中断 这句话语法有问题,。还有你中断接收里面也有问题。自己看看吧。
回复:stm32 串口接收字符串的问题
回复第 2 楼 于2014-03-24 19:32:46发表:if(Flag=1)//接收中断 这句话语法有问题,。
还有你中断接收里面也有问题。自己看看吧。
什么问题能不能帮忙说一下, 新手不懂,求大神指导。
RE:stm32 串口接收字符串的问题
if(Flag=1) 你觉得语法没问题?回复:stm32 串口接收字符串的问题
回复第 3 楼 于2014-03-25 08:40:54发表:回复第 2 楼 于2014-03-24 19:32:46发表:
if(Flag=1)//接收中断 这句话语法有问题,。
还有你中断接收里面也有问题。自己看看吧。
什么问题能不能帮忙说一下, 新手不懂,求大神指导。
if(Flag=1)//接收中断 这个该为了: if(Flag==1)//接收中断
中断里面的问题能够解释一下么,哥
回复:stm32 串口接收字符串的问题
我仔细看了下,问题倒是没有,不过你可以这样写:if(USART_GetITStatus(USART1, USART_IT_RXNE)==SET)
{
uart1_buf = USART_ReceiveData(USART1);
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
if(count1 > 10)
{
flag = 1;
count1 = 0;
}
}
回复:stm32 串口接收字符串的问题
回复第 6 楼 于2014-03-25 09:17:25发表:我仔细看了下,问题倒是没有,不过你可以这样写:
if(USART_GetITStatus(USART1, USART_IT_RXNE)==SET)
{
uart1_buf = USART_ReceiveData(USART1);
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
if(count1 > 10)
{
flag = 1;
count1 = 0;
}
}
改了 还是不行,上传了程序,麻烦大神看看其他的配置有没有问题。。
RE:stm32 串口接收字符串的问题
if(zRE:stm32 串口接收字符串的问题
谢谢各位了 发现问题了。 是NVIC_Configuration(); 这个忘记声明了。 现在可以接收和返回多个数值了。有个新的问题,为什么返回的数据中发现第一位数据丢失了呢?
页:
[1]
2