小弟 用LM3S9L97 DIY了一块板子 现在led能闪烁了 , 但是现在弄到串口时 不知怎么回事 就是发送不出去数据! 求高手指点。。下面附上程序和 串口模块原理图
/*****main.c*****/
#include"systemInit.h" #include"uartGetPut.h" #include<stdio.h>
#define LED_PERIPH SYSCTL_PERIPH_GPIOD //led 定义值 #define LED_PORT GPIO_PORTD_BASE #define LED_PIN GPIO_PIN_0
int main(void) { char s[40];
jtagWait(); clockInit();
SysCtlPeripheralEnable(LED_PERIPH); //led初始化 GPIOPinTypeOut(LED_PORT,LED_PIN);
uartInit(); //uart初始化
for(;;) { sprintf(s,"hello,world!\r\n"); //uart发送 uartPuts(s);
sprintf(s,"23456=0x%X\r\n",23456); uartPuts(s); uartPuts("heihei!\r\n");
GPIOPinWrite(LED_PORT,LED_PIN,0x00); //LED闪烁 SysCtlDelay(850*(TheSysClock/3000)); GPIOPinWrite(LED_PORT,LED_PIN,0xFF); SysCtlDelay(150*(TheSysClock/3000)); } }
/**********uartGetPut.c**********/
#include"uartGetPut.h" #include<inc/hw_types.h> #include<inc/hw_memmap.h> #include<driverlib/sysctl.h> #include<driverlib/gpio.h> #include<driverlib/uart.h> #include<ctype.h>
//UART初始化 void uartInit(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
GPIOPinTypeUART(GPIO_PORTA_BASE,GPIO_PIN_0|GPIO_PIN_1);
UARTConfigSet(UART0_BASE,9600,UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);
UARTEnable(UART0_BASE); }
//通过UART发送一个字符 void uartPutc(const char c) { UARTCharPut(UART0_BASE,c); }
//通过UART发送字符串 void uartPuts(const char *s) { while(*s !='\0') uartPutc(*(s++)); }
另外 我的 串口 连的是PA0 PA1引脚
现在 小灯能闪烁
|