
这是发送板#include "stm8s.h" #include "stm8s_clk.h" #include "stm8s_gpio.h" #include "stm8s_iwdg.h" #include "delay.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_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(50); led(0); } else { led(0); } } } [img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\919222560\QQ\WinTemp\RichOle\D2[$328]7EAG5Q]K)L]D(7X.png[/img] |
{
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOB);
GPIO_DeInit(GPIOC);
GPIO_DeInit(GPIOD);
}
这不是初始化GPIO,是复位而已,你没初始化 吧??
评分
查看全部评分
void GPIO_init(void)
{
GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);
}
后来改了,还是不行,好像是接收的数据不对