|
#include #include "hw_config.h" u8 tab[5]; 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--); } /** * @brief Main program. * @param None * @retval None */ int main(void) { u8 table[5]; 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[5];
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--);
}
/**
* @brief Main program.
* @param None
* @retval None
*/
int main(void)
{
/* Add your application code here
*/
// u16 adcx1,adcx2,temp;
u8 table[5];
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 串口接收字符串的问题
还有你中断接收里面也有问题。自己看看吧。
回复:stm32 串口接收字符串的问题
if(Flag=1)//接收中断 这句话语法有问题,。
还有你中断接收里面也有问题。自己看看吧。
什么问题能不能帮忙说一下, 新手不懂,求大神指导。
RE:stm32 串口接收字符串的问题
回复:stm32 串口接收字符串的问题
回复第 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[count1++] = USART_ReceiveData(USART1);
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
if(count1 > 10)
{
flag = 1;
count1 = 0;
}
}
回复:stm32 串口接收字符串的问题
我仔细看了下,问题倒是没有,不过你可以这样写:
if(USART_GetITStatus(USART1, USART_IT_RXNE)==SET)
{
uart1_buf[count1++] = USART_ReceiveData(USART1);
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
if(count1 > 10)
{
flag = 1;
count1 = 0;
}
}
改了 还是不行,上传了程序,麻烦大神看看其他的配置有没有问题。。
中断接收返回.rar
2014-3-25 10:41 上传
点击文件名下载附件
2.31 MB, 下载次数: 90
RE:stm32 串口接收字符串的问题
RE:stm32 串口接收字符串的问题
有个新的问题,为什么返回的数据中发现第一位数据丢失了呢?