你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 串口接收字符串的问题

[复制链接]
wuhong377 提问时间:2014-3-24 15:59 /
#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
<
收藏 1 评论16 发布时间:2014-3-24 15:59

举报

16个回答
wuhong377 回答时间:2014-3-25 15:06:40

RE:stm32 串口接收字符串的问题

已经按照六楼的说明改了程序
#include
#include &quot;hw_config.h&quot;
        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&gt;0;x--)
                for(y=1000;y&gt;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采用中断接收并返回给串口调试助手。 求大神们帮帮忙。
那片清茶 回答时间:2014-3-24 19:32:46

回复:stm32 串口接收字符串的问题

  if(Flag=1)//接收中断  这句话语法有问题,。
还有你中断接收里面也有问题。自己看看吧。
wuhong377 回答时间:2014-3-25 08:40:54

回复:stm32 串口接收字符串的问题

回复第 2 楼 于2014-03-24 19:32:46发表:
  if(Flag=1)//接收中断  这句话语法有问题,。
还有你中断接收里面也有问题。自己看看吧。
 
什么问题能不能帮忙说一下, 新手不懂,求大神指导。
 
那片清茶 回答时间:2014-3-25 08:54:23

RE:stm32 串口接收字符串的问题

if(Flag=1) 你觉得语法没问题?
wuhong377 回答时间:2014-3-25 09:02:46

回复:stm32 串口接收字符串的问题

回复第 3 楼 于2014-03-25 08:40:54发表:
回复第 2 楼 于2014-03-24 19:32:46发表:
  if(Flag=1)//接收中断  这句话语法有问题,。
还有你中断接收里面也有问题。自己看看吧。
 
什么问题能不能帮忙说一下, 新手不懂,求大神指导。

 
  if(Flag=1)//接收中断 这个该为了:  if(Flag==1)//接收中断 
中断里面的问题能够解释一下么,哥
 

 
那片清茶 回答时间:2014-3-25 09:17:25

回复:stm32 串口接收字符串的问题

 我仔细看了下,问题倒是没有,不过你可以这样写:
        if(USART_GetITStatus(USART1, USART_IT_RXNE)==SET)          
  {
                uart1_buf[count1++] = USART_ReceiveData(USART1);
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                if(count1 &gt; 10)
               {
                   flag = 1;
                  count1 = 0;
              }
                       
   }
 
wuhong377 回答时间:2014-3-25 10:42:43

回复:stm32 串口接收字符串的问题

回复第 6 楼 于2014-03-25 09:17:25发表:
 我仔细看了下,问题倒是没有,不过你可以这样写:
        if(USART_GetITStatus(USART1, USART_IT_RXNE)==SET)          
 
  {
                uart1_buf[count1++] = USART_ReceiveData(USART1);
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                if(count1 &gt; 10)
               {
                   flag = 1;
                  count1 = 0;
              }
                       
   }
 改了 还是不行,上传了程序,麻烦大神看看其他的配置有没有问题。。
 
 

中断接收返回.rar

下载

2.31 MB, 下载次数: 90

story_xjj 回答时间:2014-3-25 11:09:16

RE:stm32 串口接收字符串的问题

if(z
wuhong377 回答时间:2014-3-25 18:42:10

RE:stm32 串口接收字符串的问题

谢谢各位了 发现问题了。 是NVIC_Configuration(); 这个忘记声明了。 现在可以接收和返回多个数值了。  

有个新的问题,为什么返回的数据中发现第一位数据丢失了呢?
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版