STM32F103ZET6与51的串口通信
要点:波特率同步
PA9接51P30
PA10接51P31
共连GND
51由于32提供的电压不足,另需独立供电
//32程序 #include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "usart.h" #include "beep.h"
int main(void) { u8 key; delay_init(); uart_init(9600); KEY_Init(); led(); // beep(); while(1) { GPIO_SetBits(GPIOB,GPIO_Pin_5);//测试按键用 delay_ms(100); GPIO_ResetBits(GPIOB,GPIO_Pin_5); delay_ms(100); //按下会使得指示灯频率改变 key=KEY_Scan(0); if(key) { //已测试按键正常可使用 switch(key) { case KEY0_PRES:USART_SendData(USART1,a);delay_ms(100);break; case KEY1_PRES:USART_SendData(USART1,b);delay_ms(100);break; // default:GPIO_SetBits(GPIOB,GPIO_Pin_8);delay_ms(200);GPIO_ResetBits(GPIOB,GPIO_Pin_8);delay_ms(200); } } }
//51
#include<reg52.h> #include<stdio.h> typedef unsigned int uint; sbit beep=P2^3; uint num; uint recieve=0; void timer1Init() {
EA=1; ES=1; SM0=0; SM1=1; REN=1; TR1=1; TMOD=0X20; TL1=0XFD; TH1=0XFD; } void timer1()interrupt 4 {
if(RI) { RI=0; recieve=SBUF; }
} void main() { timer1Init(); while(1) { if(recieve==a) { P1=0; } if(recieve==b) { beep=0; } } }
