| 
 
初级会员 
 
	积分55金钱55 注册时间2016-11-29在线时间16 小时 | 
 
1金钱 
| 【【【【这是发送板】】】】 
 #include "stm8s.h"
 #include "stm8s_clk.h"
 #include "stm8s_gpio.h"
 #include "stm8s_iwdg.h"
 #include "delay.h"
 
 void Init_UART1(void)
 {
 UART1_DeInit();
 UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TX_ENABLE);
 
 UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
 
 //        UART1_Cmd(ENABLE);
 }
 void Send(uint8_t dat)
 {
 while(( UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET));
 
 UART1_SendData8(dat);
 Delay_ms(100);
 
 }
 
 void GPIO_init(void)
 {
 GPIO_DeInit(GPIOA);
 GPIO_DeInit(GPIOB);
 GPIO_DeInit(GPIOC);
 GPIO_DeInit(GPIOD);
 }
 
 void main(void)
 {
 uint8_t i = 0;
 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
 Init_UART1();
 GPIO_init();
 enableInterrupts();
 GPIO_WriteHigh(GPIOD,GPIO_PIN_2);
 /* Infinite loop */
 while (1)
 {
 led(1);
 Send(i);
 i++;
 if(i>250)
 {
 i=0;
 }
 }
 
 }
 
 【【【这是接收】】】
 
 #include "stm8s.h"
 #include "stm8s_clk.h"
 #include "stm8s_gpio.h"
 #include "stm8s_iwdg.h"
 #include "delay.h"
 #include "led.h"
 
 void Delay(uint16_t nCount)
 {
 /* Decrement nCount value */
 while (nCount != 0)
 {
 nCount--;
 }
 }
 
 void Init_UART1(void)
 {
 UART1_DeInit();
 UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_RX_ENABLE);
 
 UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
 
 //        UART1_Cmd(ENABLE);
 }
 void    Receive(uint8_t dat)
 {
 while(( UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET));
 
 UART1_ReceiveData8();
 Delay_ms(100);
 
 }
 
 void GPIO_init(void)
 {
 GPIO_DeInit(GPIOA);
 GPIO_DeInit(GPIOB);
 GPIO_DeInit(GPIOC);
 GPIO_DeInit(GPIOD);
 }
 
 void main(void)
 {
 uint8_t  a= 100 ;
 uint8_t  i;
 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
 Init_UART1();
 GPIO_init();
 enableInterrupts();
 GPIO_WriteLow(GPIOC,GPIO_PIN_7);
 /* Infinite loop */
 while (1)
 {
 Receive(i);
 if(a>i )
 {
 led(1);
 Delay_ms(100);
 led(0);
 }
 else
 {
 led(0);
 }
 }
 }
 
 
 | 
 
最佳答案
查看完整内容[请看2#楼] 我找到问题了,原来是因为位的问题,我一直发送接收8位数据,改成9位就好了,但是我有个疑问,为什么8位数据,发送100错了,不是应该256吗,即使减去停止位,也应该是128为上限,没搞懂。 |