精华内容
下载资源
问答
  • 最近在用MSP430F1232配合射频模块(Ti的CC1101芯片)开发无线收发程序,发现向板子里灌写程序后,串口助手sscom一直收到00 0 FF之类的数据,起初以为是电平转换芯片SP3232工作不正常,用万用表测量输出电压,没发现...

    本人是单片机小白,记录一些开发过程中的发现和心得。

    最近在用MSP430F1232配合射频模块(Ti的CC1101芯片)开发无线收发程序,发现向板子里灌写程序后,串口助手sscom一直收到00 0 FF之类的数据,起初以为是电平转换芯片SP3232工作不正常,用万用表测量输出电压,没发现问题;于是清空主函数,只留下while(1)语句,问题依然没解决。排除硬件问题,只能说明串口没有正常工作,于是尝试调用串口初始化程序如下:

    void InitUart(void)

    {

      volatile unsigned int i;
      WDTCTL = WDTPW + WDTHOLD;                 // close WTD
      P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD
      BCSCTL1 |= XTS;                           // ACLK = LFXT1 = HF XTAL

      do
       {
         IFG1 &= ~OFIFG;                           // Clear OSCFault flag
         for (i = 0xFF; i > 0; i--);               // Time for flag to set
       }
      
      while ((IFG1 & OFIFG) != 0);              // OSCFault flag still set?

      BCSCTL2 |= SELM_3;                        // MCLK = LFXT1 (safe)
      ME2 |= UTXE0 + URXE0;                     // Enabled USART0 TXD/RXD
      UCTL0 |= CHAR;                            // 8-bit character
      UTCTL0 |= SSEL0;                          // UCLK = ACLK
      UBR00 = 0x74;                             // 3.58Mhz/9600 - 372
      UBR10 = 0x01;                             //
      UMCTL0 = 0x00;                            // no modulation
      UCTL0 &= ~SWRST;                          // Initalize USART state machine
      IE2 |= URXIE0;                            // Enabled USART0 RX interrupt

       __bis_SR_register(LPM0_bits + GIE);      // Enter LPM0 w/ interrupt
    }

    然后发现串口助手停止收到奇奇怪怪的数据。

    问题终于解决,但是真相没有大白,为什么上电以后,芯片会自己向串口发送数据呢?以后打算有时间再好好研究。

    展开全文
  • stm32 一上电串口发送0x00

    千次阅读 2018-10-25 15:34:08
    现象:stm32 一上电串口发送0x00。 原因:参考https://blog.csdn.net/unsv29/article/details/40855397 (1)STATUS寄存器的上电初始值有问题造成的,Usart的发送数据寄存器有一个缓冲移位寄存器。并且发送有两个...

    现象:stm32 一上电串口发送0x00。

    原因:参考https://blog.csdn.net/unsv29/article/details/40855397

    (1)STATUS寄存器的上电初始值有问题造成的,Usart的发送数据寄存器有一个缓冲移位寄存器。并且发送有两个状态,一个是发送数据寄存器为空,一个是移位寄存器发送完成。上电后Usart的状态寄存器的发送完成位为0,造成了上电以后会始终会有一个值被发送,这个值就是发送移位寄存器中的值,而这个值有时候是0X00有时候是0XFE 。

    (2)在上电后至端口初始化,STM32的I/O端口处于高阻状态,有些RS232转换芯片在输入端为高阻时,可能会输出0,从而造成接收端收到0,我们已经多次看到这种现象;这时只需要在STM32的TX端加一个上拉电阻就可以解决(还未验证)。

    解决方法:

    (1)将main函数中的所有函数都屏蔽掉,就留个while(1);

    (2)看此时是否还有此现象?如果没有,请参考第3步解决;如果有,说明是串口转换芯片问题。

    (3)将串口的GPIO配置放在串口初始化的后面。

     

    展开全文
  • 串口收到的数据进行ascii码转换
  • 主函数#include "stm32f10x.h"#include "main.h"uint16_t Data[8]={0x01,0x03,0x02,0x05,0x07,0x04,0x44,0x09};uint16_t cout=0,USART_RX_COUNT=0;int main(void){uint16_t i;USART1_Config();while (1){if(cout==0)...

    主函数#include "stm32f10x.h"

    #include "main.h"

    uint16_t Data[8]={0x01,0x03,0x02,0x05,0x07,0x04,0x44,0x09};

    uint16_t cout=0,USART_RX_COUNT=0;

    int main(void)

    {

    uint16_t i;

    USART1_Config();

    while (1)

    {

    if(cout==0)

    {

    GPIO_SetBits(GPIOC,GPIO_Pin_10);

    cout=1;

    for(i=0;i<8;i++)

    {

    UART1SendByte(Data[i]);

    while (USART_GetFlagStatus(USART1,USART_FLAG_TC) !=SET);

    USART_SendData(USART1, Data[i]);

    LED_Delay(1000);

    }

    LED_Delay(12000);

    }

    GPIO_ResetBits(GPIOC,GPIO_Pin_11);   /

    }

    }

    USART配置

    #include "stm32f10x.h"

    #include "bsp_usart.h"

    #include "stm32f10x_usart.h"

    void USART1_Config(void)

    {

    GPIO_InitTypeDef GPIO_InitStructure;

    USART_InitTypeDef USART_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

    GPIO_Init(GPIOC, &GPIO_InitStructure);

    USART_InitStructure.USART_BaudRate = 115200;

    USART_InitStructure.USART_WordLength = USART_WordLength_8b;

    USART_InitStructure.USART_StopBits = USART_StopBits_1;

    USART_InitStructure.USART_Parity = USART_Parity_No ;

    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //硬件流控制模式设置

    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //接收和发送使能

    USART_Init(USART1, &USART_InitStructure);

    NVIC_Config_USART1(); //中断配置

    USART_ClearFlag(USART1, USART_FLAG_TC);//防止第一个数据被覆盖

    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);  //接收中断使能

    USART_Cmd(USART1, ENABLE); //使能

    }

    static void NVIC_Config_USART1(void)

    {

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

    NVIC_InitTypeDef NVIC_InitStructure;

    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&NVIC_InitStructure);

    }

    void UART1SendByte(uint16_t SendData)

    {

    USART_SendData(USART1,SendData);

    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

    }

    unsigned char UART1GetByte(unsigned char* GetData)

    {

    if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)

    {  return 0;

    }

    *GetData = USART_ReceiveData(USART1);

    return 1;

    }

    展开全文
  • 打开串口收到乱码

    千次阅读 2020-01-06 16:01:47
    1、线松动。 2、关闭SSCOM重新连接。

    1、线松动。

    2、关闭SSCOM重新连接。

    展开全文
  • STM32 USART输出00的问题

    千次阅读 2019-04-30 11:40:17
    本人在USART学习中可谓是历经磨难,这不又出问题了,本身应该打印到串口调试助手的东西显示不出来,用十六进制显示出来00,在百度上百度了1个小时,他们的错误我都避免了。在经历了不断调试以及自我检查程序之后,...
  • STM32串口调试一直打印 00 00

    千次阅读 2020-04-16 23:04:15
    在STM32串口调试过程中,通过printf函数往串口打印英文字母,串口助手却一直收到 00 凭直觉,这种情况一般都是时钟没配置好 但是查代码很难找到原因, 经过反复查找,发现是STM32CubeMX中时钟源选择错误, ...
  • 串口收不到数据或者收到错误数据 串口乱码总结

    万次阅读 多人点赞 2019-04-28 22:15:03
    1、查看你使用的USB转串口是3.3V的串口还是5V串口,如果发送方使用的是3.3V然后你使用的USB转串口是5V是可以收到数据的但收到的数据都是错误的 2、查看波特率、奇偶校验、停止位等是否设置正确。 3、如果是STM32,...
  • 串口自动回复测试工具,通过在Excel文件中对接收到的报文的输入,完成对应输出报文的发送。开发中完成的工具。
  • 本文主要讲了如何设置51单片机串口通信接受1发送2?下面一起来学习一下
  • 使用MSComm控件完成的串口调试助手, 可打开1到16的串口,经测试性能很好 定时发送 16进制发送 发送文件 16进制显示 在长时间大数据量测试的情况下能正常工作 解决十六进制00不能显示的问题
  • 当下位机持续向上位机发送满足要求的数据时,软件则会将收到的数据显示为1-8条曲线。 您可根据需要任意扩大缩小图形,并可保存以备下次分析。同时该程序还具有串口调试助手功能。 这是一款功能极其强大的串口调试...
  •  测试串口是好是坏的办法:用导线把2、3脚短路,然后使用串口调试助手,手动发送一个(或多个)字节,如果接受区能收到同样的字节,则说明串口是好的,能正常工作。否则,串口有问题。  加串口服务器后,该方法...
  • 支持设置数据自动回复的串口工具。可用于串口调试的辅助工作,用户可自由设置接收数据对应的回复数据,比较好用!
  • C# 串口通信Winfrom 程序,检测串口 发送和接收消息 亲测可用
  • 串口助手软件带有自动回复功能,方便设备进行模拟调试时使用。
  • 学习笔记-----usart串口调试助手一直打印00的解决方案 一、 RXT、TXD电路接反。一直出现00的时候就要怀疑是不是线接反了。 二、波特率设置有问题,是不是你的波特率设置远低于9600 三、看看是不是在死循环里。 以上...
  • 串口调试工具

    2018-06-23 09:44:52
    该工具最多可设置15条预设命令,并且可设置自动响应发出预设命令,即当串口收到预设的数据时自动发出预设命令。 预设命令可保存,下次再启动工具时无需重新输入。且预设命令可加入备注。在命令存档文件命令行的...
  • 单片机收到串口发单片机收到串口发来数据后回送给串口来数据后回送给串口
  • 串口 调 试 助手 友善 串口 测试可用
  • 利用串口发送代码,实现其他设备程序的互动,其他程序接收串口信号即可互动
  • 串口1、2、3、4串口内被动发数据,串口之间通信互发数据,读取串口的缓冲区进行收发都可以,资源冲突已经解决,可以直接用。口均已启用DMA及空闲中断,支持不定长度数据接收。
  • 串口通信 (1)刚下载完程序,流水灯 (2)通过串口助手发送“ab01”,数码管显示温度,显示完当前温度后,将温度打印到串口助手上 (3)串口助手发送“ab02”,,蜂鸣器响 (4)执行完后都会回复最初的流水灯
  • 最近要在Unity3D中与单片机串口通信,unity3D我本就是新手,这里自己摸索加网上资料最后终是弄好了,这里是最简单直接的步骤。
  • 目前新购买的计算机上,串口(uart,rs-232)已经难觅踪迹。...  非RAW模式下,系统会对串口收到的数据中某些具有特殊意义的字符或组合进行转义。这种 工作模式的典型是在Linux下使用 minicom 配置交换机或串口登录
  • 主要是实现主机与串口之间的通讯,还有将键盘数码管和串口联系在一起
  • 串口数据监听思路

    2021-01-06 03:11:33
    虚拟串口: 虚拟串口是一对互通的虚拟设备,当向COM1写入数据时,COM2收到数据;向COM2写入数据时,COM1收到数据。 监听软件: 实现串口监听的软件实现,主要业务是打开COM1和COM3。收到COM3数据时,转发给COM1;收到...
  • 带时间戳的串口工具

    2017-09-24 13:23:34
    1.可编辑发送的数据序列 2.可打印带时间戳的16进制日志 3.可带校验码发送,接受,以及编辑数据帧格式。 3.可用于mcu串口调试,方便稳定。
  • 上机作业:两台8051单片机之间通过串口通信,晶振频率为11.0592M,通信波特率为19200,发送端连续发送0到9的数码管段码值,接收端将串口接收过来的数据显示在数码管。 (要求发送和接收都用串口中断实现)
  • 在上一篇文章中,我们利用proteus中自带的虚拟终端实现了单片机通过串口向主机发送字符串的功能。这次实例我们加入串口接收字符的功能。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,914
精华内容 13,165
关键字:

串口收到00

友情链接: FM2504_spi.rar