如圖,UART0 上升沿不夠陡峭。時(shí)間看起來是對(duì)的115200波特率8.6us。
串口輸出接74HC04,走線距離不到2CM,阻抗應(yīng)該不會(huì)有問題吧?
/******************************************************************************* *?Function?Name??:?InitUART0() *?Description????:?CH559串口0初始化,默認(rèn)使用T1作UART0的波特率發(fā)生器,也可以使用T2 ???????????????????作為波特率發(fā)生器 *?Input??????????:?None *?Output?????????:?None *?Return?????????:?None *******************************************************************************/ void?InitUART0() { ????UINT32?x; ????UINT8?x2;? #ifdef?DEBUG ????CH559UART0Alter(); #endif ???? ????SM0?=?0; ????SM1?=?1; ????SM2?=?0;???????????????????????????????????????????????????????????????????//串口0使用模式1 ???????????????????????????????????????????????????????????????????????????????//使用Timer1作為波特率發(fā)生器 ????RCLK?=?0;??????????????????????????????????????????????????????????????????//UART0接收時(shí)鐘 ????TCLK?=?0;??????????????????????????????????????????????????????????????????//UART0發(fā)送時(shí)鐘 ????PCON?|=?SMOD; ????x?=?10?*?FREQ_SYS?/?BUAD_RATE?/?16;?????????????????????????????????????????????//如果更改主頻,注意x的值不要溢出???????????????????????????? ????x2?=?x?%?10; ????x?/=?10; ????if?(?x2?>=?5?)?x++;???????????????????????????????????????????????????????//四舍五入 ????TMOD?=?TMOD?&?~?bT1_GATE?&?~?bT1_CT?&?~?MASK_T1_MOD?|?bT1_M1;??????????????//0X20,Timer1作為8位自動(dòng)重載定時(shí)器 ????T2MOD?=?T2MOD?|?bTMR_CLK?|?bT1_CLK;????????????????????????????????????????//Timer1時(shí)鐘選擇 ????TH1?=?0-x;?????????????????????????????????????????????????????????????????//12MHz晶振,buad/12為實(shí)際需設(shè)置波特率 ????TR1?=?1;???????????????????????????????????????????????????????????????????//啟動(dòng)定時(shí)器1 REN?=?1;???????????????????????????????????????????????????????????????????//串口0接收使能 #ifdef?DEBUG TI?=?1; #else TI?=?0; ES?=?1; #endif }
/******************************************************************************* *?Function?Name??:?UART_Send *?Description????:?串口0字節(jié)發(fā)送 *?Input??????????:?dat????串口待發(fā)送數(shù)據(jù) *?Output?????????:?None *?Return?????????:?None *******************************************************************************/ void?UART_Send(?UINT8?dat?) { ????TI?=?0; ????SBUF?=?dat; ????while(?TI?==?0?)? {;} }
熱門產(chǎn)品 :
CH32L103: 32位PDUSB低功耗單片機(jī)