l_9_3_autobaud.c

来自「* Use 10 MHz crystal frequency. * Use 」· C语言 代码 · 共 60 行

C
60
字号
#include "config.h"#include "serial.c"#include "serio.c"// do autobaud detection// prototypesvoid autobuad(void);// HSPLL mode, crystal = 7.3728 MHz // so Fosc = 29,491,200char baud_rate[] = {191,95,47,31,15,7};// enter carriage return repeatedly// to set baud ratevoid autobaud(void){  char i,c,exit;  i=0;  serial_init(baud_rate[i],1);  exit = 0;  while(!exit) {    // wait for character    while (!RCIF);  // check RCIF bit     c = RCREG;    if (FERR || OERR) {      // baud rate too fast, reset      i = 0;      CREN = 0; // clear error      CREN = 1;    }    if (c == 0x0D) { // found baud rate      printf("Found baud rate."); pcrlf();      exit = 1;    } else {      i++;      if (i > 5) i = 0;  // try again      serial_init(baud_rate[i],1);    }  }}  // Try to automatically determine baud rate,// then echovoid main(void){  char c;  autobaud();  while(1){    // do character echo    c = getch();    c++;    putch(c);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?