📄 serial_con.c
字号:
#include "stdio.h"
#include "F2812reg.h"
#include "device.h"
Uint16 a,b;
#pragma DATA_SECTION(PieVectTable,"PieVectTable");
struct PIE_VECT_TABLE PieVectTable;
void initcpu()
{
asm(" EALLOW");
WDCR=0x068; //禁止看门狗
// PLLCR=0x0004; //CPU时钟为OSCCLK*4/2 30m
PLLCR=0x000A; //CPU时钟为OSCCLK*10/2 12m
PCLKCR=0x5D0B; //外设时钟使能
HISPCP=0x0000; //配置外设时钟HSPCLK=60M/1=60M
LOSPCP=0x0001; //配置外设时钟LSPCLK=60M/2=30M
asm(" EDIS");
}
void initgpio()
{
asm(" EALLOW");
GPFMUX=0x003f; //配置GPIOF中的SCI,SPI口为外设模式
GPGMUX=0x0030; // 配置GPIOG中的SCIB
asm(" EDIS");
}
void initpiectrl()
{
asm(" EALLOW");
PIECTRL=0x0001; //配置PIE向量表
PIEACK=0xffff;
PIEIFR9=0x0000;
PIEIER9=0x0004; //使能SCIB 接收中断
asm(" EDIS");
}
/*******************************************************/
void initsci()
{
SCICCRB=0x0007; //一个停止位,无校验,8位字符
SCICTL1B=0x0003; //使能发送与接收
SCICTL2B=0x0002; //禁止发送TXRDY中断,使能接收RXRDY中断
SCIHBAUDB=0x01;
SCILBAUDB=0x086; //波特率为9600
SCICTL1B=0x0023;
}
/************************************************************/
main()
{
asm(" EALLOW");
asm(" CLRC DBGM"); // 调试使能
asm(" SETC OVM"); // 溢出模式
asm(" SETC SXM"); //符号扩展
asm(" SETC OBJMODE"); //C28x模式
asm(" SETC VMAP"); //使能PIE向量
asm(" EDIS");
DINT;
initcpu();
initgpio();
initpiectrl();
InitPieVectTable();
initsci();
asm(" EALLOW");
asm(" AND IFR,#0000H");
asm(" OR IER,#0100H"); //使能INT9中断
asm(" EDIS");
EINT;
asm(" EALLOW");
PieVectTable.RXBINT=&SCIRXINTB_ISR;
asm(" EDIS");
while(1)
{//SCITXBUFB=0x55;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -