这是关于串口通信的程序,可以实现三方通信(只用一个串口)STM32与两片MSP430实现通信
单片机源程序如下:
- #include <msp430x14x.h>
- #include "RF.h"
- void delay_100ms(unsigned int i)
- {
- unsigned long j;
- for(;i>0;i--)
- {
- for(j=0;j<144200;j++);
- }
- }
-
-
- //unsigned char RXData[4]={0};
- unsigned char TxBuf[5]={0};
- unsigned char RxBuf[5]={0};
- unsigned char a,b,c;
- unsigned char PaTabel[8] = {0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60};
- //unsigned char rxBuffer;
- void main(void)
- {
-
-
- unsigned char leng = 2;
- // P5DIR |= BIT3;
- //P5OUT |= BIT3;
-
-
-
-
-
- CpuInit(); //包括看门狗,时钟,I/O口,SPI
- POWER_UP_RESET_CC1100();
- halRfWriteRfSettings();
- halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8,1);
- halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8,2);
- delay(100);
-
-
- P3SEL |= 0x30; //P3.4 P3.5 ????????????
- ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
- UCTL0 |= CHAR; // 8-bit character
- UTCTL0 |= SSEL1; // UCLK = SMCLK
- UBR00 = 0x45; // 8MHz 115200
- UBR10 = 0x00; // 8MHz 115200
- UMCTL0 = 0x00; // 8MHz 115200 modulation
- UCTL0 &= ~SWRST; // Initialize USART state machine
- IE1 |= URXIE0;
- delay(100);
-
- P1DIR &= ~(BIT0+BIT1+BIT2+BIT3);
- P2DIR |= BIT7+BIT6+BIT5+BIT4; //控制led灯
- P2OUT |=BIT7+BIT6+BIT5+BIT4;
- for(;;)
- {
- /**********************************开机************************************************/
- if(0==(P1IN&0X01))
- {
- P2OUT^=BIT7;
- delay_100ms(1);
-
- TxBuf[0]=0x01;
- TxBuf[1]=0x02;
-
- while(0==(P1IN&0X01));
- halRfSendPacket(TxBuf,leng,1); // Transmit Tx buffer data
-
- }
-
- /********************************关机**************************************************/
- if(0==(P1IN&0X02))
- {
- P2OUT^=BIT6;
- delay_100ms(1);
-
- TxBuf[0]=0x01;
- TxBuf[1]=0x03;
- while(0==(P1IN&0X2));
- halRfSendPacket(TxBuf,leng,1); // Transmit Tx buffer data
-
- }
- /***********************************温度加***********************************************/
- if(0==(P1IN&0X04))
- {
- P2OUT^=BIT5;
- delay_100ms(1);
-
- TxBuf[0]=0x01;
- TxBuf[1]=0x04;
-
- while(0==(P1IN&0X04));
- halRfSendPacket(TxBuf,leng,1); // Transmit Tx buffer data
-
- }
- /**********************************温度减************************************************/
- if(0==(P1IN&0X08))
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
stm32和msp430通信.7z
(349.06 KB, 下载次数: 20)
|