大家好、
我在 TIVAC TM4C123G 中练习 UART1,因此当我在 Keil 中加载程序时, 该板 已进行编程,没有错误,我看到终端串行的结果,很好,但当我这样做时。
想在 tivac 中加载其他程序,Keil 向我显示此错误、警告...
因此、我无法在我的 Tiva 中加载程序... 这实际上是设置。
当我设置 UART1并意外调用函数时、我犯了如下错误:
void inituart( void ){
三、会议的报告 SYSCTl->RCGC1 = 0x02; // UART 1.
三、会议的报告 sysctl->RCGC2|=0x04; //端口 c
三、会议的报告 GPIO->AFSEL=0x30; //更改函数 UART1 PC5 PC4
三、会议的报告 GPIO->PCTL=0x220000; //多路复用器功能2 en 5 2 en 4
三、会议的报告 GPIO->DEN=0x30;//引脚5引脚4 3 2 1 0
//配置 de la UART
三、会议的报告 UART1->CTL&&~0x01;// UART 0ff
//波特
三、会议的报告 UART1->IBRD=104; // 9600 baudios 80M 520 16M 104 +0.166666
三、会议的报告 UART1->FBRD=10; // 9600 baudios 80M 53 16M 10.
三、会议的报告 UART1->LCRH=0x70;// 8位正常
三、会议的报告 UART1->CTL|=0x01;// UART 打开
}
int main (void){
三、会议的报告 config();
三、会议的报告 inituart();
三、会议的报告 sprintf (&Buffer[0]、"Hello World");
三、会议的报告 while (1){
三、会议的报告 GPIOF->DATA= 0x08;
三、会议的报告 writePort (&Buffer[0]);
三、会议的报告 delay();
三、会议的报告 GPIOF->DATA= 0x00;
三、会议的报告 delay();
........................................................................ }//结束 while 循环
}//结束 main
空 writePort (char *缓冲区){
三、会议的报告 whil(*Buffer!= NULL ){
三、会议的报告 putC(*Buffer);
三、工作安排 Buffer++;
..........................................................................}
}
void putC (char c){
……………… while ((UART1->FR & 0x20)==1);
……………… UART1->DR=c;
}
在这最后一个条件下,while 循环中的值必须 是**** while ((UART1->FR & 0x20)!= 0);*****
我认为 我修改了 JTAG 调试... ( PORTC )
我在编程时曾考虑过使用 LM 闪存编程器、但我没有经验.....
那么,有人能帮我吗? 谢谢


