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

为什么的STM8S003F3P6的uart1发送数据是乱码的?你们遇到过吗?

[复制链接]
lqh-414236 提问时间:2015-1-29 16:21 /
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include "stm8s_clk.h"
#include "stm8s_gpio.h"
#include "stm8s_uart1.h"
#include "stm8s.h"

#include <string.h>
void Init(void);
void Uart1Send8String(u8 *pStr,u8 length);
void delayMs(u32 ms){
        u32 count =1000;
        for(;ms>0;ms--){
                for(;count>0;count--){
                        _asm("nop");
                }
        }
}
void Uart1Send8String(u8 *pStr,u8 length){
        u8 i;
        for(i=0;i<length;i++){
                while(UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
                UART1_SendData8(pStr);
                delayMs(100);
        }
}

void Init(void){
        CLK_DeInit();
        CLK_HSICmd(ENABLE);
        CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);//16MHz  8分频为2MHz
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE);
        delayMs(100);
        //GPIO初始化
        GPIO_DeInit(GPIOD);
        GPIO_DeInit(GPIOA);
        GPIO_DeInit(GPIOC);
        GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_FAST);          //USART1_TX-PD5
        GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT);                //USART1_RX-PD6           
       
        UART1_DeInit();
        UART1_IrDAConfig(UART1_IRDAMODE_NORMAL);
        UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, \
        UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
        UART1_Cmd(ENABLE);
}

void main(void)
{
        u8 str[] = "fuck you!!!!";
        Init();
        while(1){
        Uart1Send8String(str,strlen(str));
        delayMs(100000);
        }
}

使用的编译器STVD 和 STM8 Cosmic
得到的结果如下:

串口实验的结果

串口实验的结果

我测量的方法是:TX和RX空载,连接到R232 在连接电脑端。
是不是我该怀疑电路板有问题了呢。


收藏 2 评论20 发布时间:2015-1-29 16:21

举报

20个回答
lqh-414236 回答时间:2015-1-29 16:28:05
来一个人,帮我说一下,thank you!
lqh-414236 回答时间:2015-1-29 16:29:35
我对STM32熟悉,但是没做过STM8的,感觉应该STM32简单的,搞了一天了,发送的都是乱码!唉,STM 的芯片还是不怎么靠谱啊!
lqh-414236 回答时间:2015-1-29 16:31:25
为自己助威!
dsjsjf 回答时间:2015-1-30 11:54:01
lqh-414236 发表于 2015-1-29 16:29
我对STM32熟悉,但是没做过STM8的,感觉应该STM32简单的,搞了一天了,发送的都是乱码!唉,STM 的芯片还是 ...

不要动不动就怀疑芯片,毕竟这么多人都在用呢,还而还是常用的USART,不会有什么问题的
lqh-414236 回答时间:2015-1-30 15:19:32
dsjsjf 发表于 2015-1-30 11:54
不要动不动就怀疑芯片,毕竟这么多人都在用呢,还而还是常用的USART,不会有什么问题的 ...

问题来了!示波器测量,以及串口打印都有问题。何解?单步调试,寄存器值均没有问题。为何串口数据确是不对的!
dsjsjf 回答时间:2015-1-31 08:36:51
波特率,时钟,晶振频率再查查
sting 回答时间:2015-2-1 20:29:15
stm8f003内建hsi不准确
MouseCat 回答时间:2015-2-1 23:23:56
往外发AA或55,看一下波形!
红玫瑰的偏爱 回答时间:2015-2-2 12:44:18
波特率的问题吧!你对比一下实际波特率 和你用库函数自动计算出来的。我记得是库函数计算出来的波特率是有问题了。
123下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版