你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8 波特率

[复制链接]
zj20115659 提问时间:2015-10-14 08:36 /
STM8的串口波特用115200就乱码;我还是用的外部16晶振,求助
收藏 评论15 发布时间:2015-10-14 08:36

举报

15个回答
你好我好大家好! 回答时间:2015-10-14 09:23:40
帮顶                                             
ughbss 回答时间:2015-10-14 09:27:04
把代码发上来看看
刚声打火机 回答时间:2015-10-14 10:10:55
一定是代码的问题,我用115200用的好好的,可以贴上你的代码看看
k_xg1919 回答时间:2015-10-14 10:28:31
同问....
zj20115659 回答时间:2015-10-14 13:42:52
  1. #include "uart.h"
  2.        
  3. unsigned char USART2_RX_BUF[USART2_MAX_RECV_LEN]={0}; //接收缓冲,最大USART2_MAX_RECV_LEN个字节. 串口接收缓存区
  4. unsigned char USART2_RX_STA=0;
  5. unsigned char Uart2Time=0; //uart2接收数据
  6. /*****************************************************************************
  7. Prototype    : Init_UART2
  8. Description  : 串口初始化函数
  9. Input        : 波特率  
  10. Output       : None
  11. Return Value : void
  12. Calls        :
  13. Called By    :

  14. *****************************************************************************/
  15. void Init_UART2(unsigned long baud)
  16. {
  17.   unsigned long tmpData = SYS_UART_CLOCK / baud;
  18.   UART1_CR1=0x00;
  19.   UART1_CR2=0x00;
  20.   UART1_CR3=0x00;
  21.   

  22.   UART1_BRR1 = (unsigned char)((tmpData >> 4) & 0x0ff);
  23.   UART1_BRR2 = (unsigned char)((tmpData & 0x00f) | ((tmpData >> 8) & 0x0f0));        //设置波特率

  24.   UART1_CR2=0x2c;//允许接收,发送,开接收中断
  25.   UART1_CR4 = 0x00;
  26. }
  27. /*****************************************************************************
  28. Prototype    : UART2_sendchar
  29. Description  : 串口发送一个字符
  30. Input        : sendData
  31. Output       : None
  32. Return Value : void
  33. Calls        :
  34. Called By    :


  35. *****************************************************************************/
  36. void UART2_sendchar(unsigned char sendData)
  37. {
  38.   CLEARBIT(UART1_SR, 6);
  39.   UART1_DR = sendData;
  40.   while(!CHECKBIT(UART1_SR, 6))
  41.   {

  42.   }
  43. }
  44. /*****************************************************************************
  45. Prototype    : UART2_sendStr
  46. Description  : 串口发送一个字符串
  47. Input        : sendData,length
  48. Output       : 发送出去的数据长度
  49. Return Value : void
  50. Calls        :
  51. Called By    :


  52. *****************************************************************************/
  53. unsigned char UART2_sendStr(unsigned char* sendStr,unsigned char length)
  54. {
  55.   unsigned char iLoop = 0;
  56.   if((sendStr != NULL)&&(length >0))
  57.   {
  58.     for(iLoop = 0; iLoop < length; iLoop++)
  59.     {
  60.     UART2_sendchar(*(sendStr + iLoop));
  61.     }       
  62.   }
  63.   else{        }
  64.   return iLoop;
  65. }
  66. /*****************************************************************************
  67. Prototype    : UART2_R_OR_IRQHandler
  68. Description  : 串口中断接受函数
  69. Input        : void
  70. Output       : none
  71. Return Value : void
  72. Calls        :
  73. Called By    :


  74. *****************************************************************************/
  75. #pragma vector= UART1_R_OR_vector//0x19
  76. __interrupt void UART1_R_OR_IRQHandler(void)
  77. {
  78. //if(USART2_RECV_END==0) //当前可以接收数据
  79.   //{
  80.     unsigned char temp;
  81.     temp=UART1_DR;
  82.     OpenTimer2();
  83.     //UART2_sendchar(temp);
  84.     if(USART2_RX_STA<USART2_MAX_RECV_LEN)
  85.     {
  86.       USART2_RX_BUF[USART2_RX_STA++]=temp;
  87.     }
  88.    
  89.     else
  90.     {
  91.       USART2_RECV_END=1;//接收数据超过缓存区 强制标记接收完成 丢弃多余的数据
  92.       USART2_RX_STA=0;
  93.       CloseTimer2();//关闭TIM2
  94.     }
  95.   //}
  96. }
复制代码
zj20115659 回答时间:2015-10-14 16:01:13
ughbss 发表于 2015-10-14 09:27
把代码发上来看看

代码发出来了,6楼
zj20115659 回答时间:2015-10-14 16:02:12
ughbss 发表于 2015-10-14 09:27
把代码发上来看看

代码发出来了,6楼
zj20115659 回答时间:2015-10-14 16:03:47
刚声打火机 发表于 2015-10-14 10:10
一定是代码的问题,我用115200用的好好的,可以贴上你的代码看看

代码贴出来了,6楼;SYS_UART_CLOCK=16000000
ughbss 回答时间:2015-10-14 16:17:01
你用的那个型号的STM8
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版