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; } } }

经验分享 程序员 微信小程序 职场和发展