/* 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 在连接电脑端。 是不是我该怀疑电路板有问题了呢。 |
测试标签123
IAR FOR ARM和IAR FOR STM8无法共存,
STM8L052,液晶内部电源怎么用?
STM8S103飞线外接芯片,I2C不能得到slaveAddress应答,通讯失败。
STM8S105C6T6 UART2串口,能接收数据,不能发送数据
STM8S105K4 串口2 无奇偶校验,也能接收 偶校验的 数据
在STM8S的IAP使用中断和APP使用中断问题
STM8L151 SMBUS设计
STM8S103F复位异常
STM8L的LCD调试时不亮
不要动不动就怀疑芯片,毕竟这么多人都在用呢,还而还是常用的USART,不会有什么问题的
问题来了!示波器测量,以及串口打印都有问题。何解?单步调试,寄存器值均没有问题。为何串口数据确是不对的!