微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > tiva c tm4c123gh6pm 蓝牙小车程序

tiva c tm4c123gh6pm 蓝牙小车程序

时间:10-02 整理:3721RD 点击:
#include"stdio.h"
#include<stdint.h>
#include<stdbool.h>
#include "inc/tm4c123gh6pm.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/pwm.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/pin_map.h"
#include "driverlib/uart.h"
#include "driverlib/interrupt.h"
#include "inc/hw_gpio.h"
#include "inc/hw_ints.h"
// //********************UART_GPIO初始化************************

int uartmain(void)
{
            int i;
        char thischar;
        SysCtlClockSet(SYSCTL_SYSdiv_1|SYSCTL_XTAL_16MHZ|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN);
                 SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
            SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
            GPIOPinConfigure(GPIO_PB0_U1RX);
        GPIOPinConfigure(GPIO_PB1_U1TX);
            GPIOPinTypeUART(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1);
            UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 9600,
                (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
                thischar=UARTCharGet(UART1_BASE);
                UARTCharPut(UART1_BASE,thischar);
                 if(thischar=='a')//前进
                        i=123;
                else if(thischar=='b')//后退
                         i=789;
            else if(thischar=='s')//左转
                     i=456;
            else if(thischar=='n')//右转
                        i=258;
                         return i;
}



//*****************主函数调用*****************************
void main(void)
{
           SysCtlClockSet(SYSCTL_SYSdiv_2_5|SYSCTL_XTAL_20MHZ|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN);
           SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
           GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
           SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
           GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
           SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
                      GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE,GPIO_PIN_7);
  while(1)
  {
              if( uartmain()==123)//前进
                                 {

                                  GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_PIN_1);//前1
                                  GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,GPIO_PIN_2);//前2
                                  GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3);//后1
                                  GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_7,GPIO_PIN_7);//后2
                                  GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4,0);//前1
                                  GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0);//前2
                                  GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_6,0);//后1
                                  GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,0);//后2
                           }
              else if( uartmain()==789)//后退
                         {
                                GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4,GPIO_PIN_4);//前1
                                GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,GPIO_PIN_5);//前2
                                GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_6,GPIO_PIN_6);//后1
                                GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,GPIO_PIN_7);//后2
                                GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0);//前1
                                GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0);//前2
                                GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0);//后1
                                 GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_7,0);//后2
                         }
              else if( uartmain()==456)//左转
              {

                      GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0);//前1
                          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,GPIO_PIN_2);//前2
                          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0);//后1
                          GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_7,GPIO_PIN_7);//后2
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4,GPIO_PIN_4);//前1
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0);//前2
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_6,GPIO_PIN_6);//后1
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,0);//后2
              }
              else if(uartmain()==258)
              {
                      GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_PIN_1);//前1
                          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0);//前2
                          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3);//后1
                          GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_7,0);//后2
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4,0);//前1
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,GPIO_PIN_5);//前2
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_6,0);//后1
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,GPIO_PIN_7);//后2

              }
              else
              {
                      GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0);//前1
                          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0);//前2
                          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0);//后1
                          GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_7,0);//后2
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4,0);//前1
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0);//前2
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_6,0);//后1
                          GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,0);//后2
              }
  }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top