久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM8新手求教串口! [打印本頁]

作者: 滄浪    時間: 2017-8-22 17:33
標題: STM8新手求教串口!
跟著教程學STM8,代碼明明跟他們的一樣,卻總是有問題,求教!
  1. #include<iostm8s103k3.h>

  2. #define uint unsigned int
  3. #define uchr unsigned char


  4. void UART1_Init(uint baudart)
  5. {
  6.   uint baud;
  7.   baud=16000000/baudart;
  8.   UART1_BRR2 = (uchr)((baud & 0xf000)>>8) | (uchr)(baud & 0x000f);
  9.   UART1_BRR1 = (uchr)((baud & 0x0ff0)>>4);
  10.   UART1_CR1_bit.UART0 = 0; //使能UART中斷。
  11.   UART1_CR2_bit.RIEN = 1;  //使能接收中斷使能
  12.   UART1_CR2_bit.REN  = 1;  //使能接收
  13.   UART1_CR2_bit.TEN  = 1;  //使能發(fā)送
  14. }

  15. void UART1_SendData(uchr data)
  16. {
  17.   while(!(UART1_SR_bit.TXE));
  18.   UART1_DR = data;      
  19. }

  20. int main( void )
  21. {
  22.   asm("sim");
  23.   CLK_CKDIVR = 0X00;
  24.   UART1_Init(9600);
  25.   asm("rim");
  26.   while(1);
  27. }
  28.         
  29. #pragma vector = 20
  30. __interrupt void UART1_TX_ISP()
  31. {
  32.   uchr ch;
  33.   UART1_SR_bit.RXNE = 0;
  34.   ch = UART1_DR;
  35.   UART1_SendData(ch);
  36. }
復制代碼




作者: 滄浪    時間: 2017-8-23 15:56
已解決,主要是發(fā)送函數(shù) UART1_SendData()的問題,里面 while(!(UART1_SR_bit.TXE));和UART1_DR = data;的順序有錯誤,另經(jīng)過學習說是這種方法寫串口發(fā)送不科學,有會第一個數(shù)據(jù)發(fā)送失敗的問題,標志位不應采用TXE,采用TC比較好。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产欧美日韩 | 黄色av免费 | 在线播放中文字幕 | 亚洲一区二区精品视频在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 黄一区二区三区 | 一色桃子av一区二区 | 亚洲国产精品区 | 亚洲视频一区在线观看 | 日韩av免费在线观看 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 日韩在线一区二区 | 国产日韩欧美激情 | 亚洲一区二区三区四区五区午夜 | 在线观看中文字幕dvd播放 | 久久久精品黄色 | 可以在线观看av的网站 | 祝你幸福电影在线观看 | 久久激情av | 久久草在线视频 | 国产日韩精品久久 | 成人精品一区二区 | 国产一区2区 | 剑来高清在线观看 | www久久爱| 夜夜操天天操 | 综合九九 | 狠狠插天天干 | 亚洲国产精品成人综合久久久 | 欧美性成人| 大学生a级毛片免费视频 | 欧美区在线 | 国产1区| 精品国产伦一区二区三区观看体验 | 天天久久 | 日本a∨精品中文字幕在线 亚洲91视频 | 波多野结衣先锋影音 | 美女在线视频一区二区三区 | www日韩 | 欧美一级片在线播放 | 高清亚洲 |