经过一天的奋战,此部分总算有了点进展,不过还有很大一部分东东没有搞清楚,不会就此落下的,加油!
#include "inc\hw_memmap.h"
#include "inc\hw_ints.h"
#include "inc\hw_types.h"
#include "driverlib\sysctl.h"
#include "driverlib\gpio.h"
#include "driverlib\interrupt.h"
#include "driverlib\uart.h"
#include "type.h"
void ProtectJTAG(void) {
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);//2MA驱动能力,推挽方式 弱上拉
GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_DIR_MODE_IN);//设为输入方式亦可不要上一语句
while(GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_4) == 0) { ; } }
void UARTInit(void) {
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);//使能外设A端口R/T
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); //使能串口外设
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); //使能串口GPIO脚
//UART配置 UART0 串口时钟为系统时钟 波特率9600 8位数据位 1位停止位 无奇偶校验
UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 9600,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |UART_CONFIG_PAR_NONE));
//UARTFifoLevelSet(UART0_BASE,8,8);//FIFO出发深度
IntEnable(INT_UART0); //使能串口中断
IntMasterEnable(); //使能全局中断
//UARTIntEnable(UART0_BASE,UART_INT_RX | UART_INT_TX);//使能串口接收和发送中断
//IntPrioritySet(INT_UART0,0);//设置中断优先级
UARTEnable(UART0_BASE); //使能串口(uart0) 发送和接收 }
void UARTSend(const unsigned char *str,unsigned long ulcount) {
while(*str) {
if(UARTSpaceAvail(UART0_BASE)) {
UARTCharPutNonBlocking(UART0_BASE, *str); //成功发送则返回true;若FIFO中没有可用空间则返回False,稍后再次尝试。
str++; ulcount--; } } }
/******************************* **uart通用异步收发器 ******************************/
void main(void) {
ProtectJTAG();
SysCtlClockSet( SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_6MHZ );
UARTInit();
const unsigned char ss[]={"Nothing in the world can take the place of persistence !"};
unsigned long count=57;
UARTSend(ss,count);
while(1) { }
}
LM3S811控制器带有2个UART模块s Stellaris UART 执行并串转换和串并转换功能。 Stellaris UART 的一些特性描述如下: 一个 16×12 位的接收 FIFO 和一个 16×8 位的发送 FIFO; 可编程的波特率发生器; 起始位、停止位和奇偶位的自动产生和撤除(stripping); 线路断开(Line break)的产生和检测; 可编程的串行接口: 5、6、7 或 8 个数据位; 奇校验位、偶校验位、粘附(stick)奇偶校验位或无奇偶校验位的产生和检测; 1或 2 个停止位的产生; 波特率的产生(从 DC 到处理器时钟/16)。 IrDA 串行 IR(SIR)编码器/解码器; DMA 接口。
关键词:
LM3S811
学习
笔记
UART0