OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4457|回复: 4

stm8 串口设置数据位7位,偶校验

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2018-1-31
在线时间
1 小时
发表于 2019-9-9 15:44:46 | 显示全部楼层 |阅读模式
1金钱
最近在搞一个小项目,所用单片机是 STM8S003F3,在串口设置这里需要用到  ,1起始位,7数据位,1奇偶校验,1停止位。但是查阅芯片手册,发现stm8系列数据位只有8位和9位两种,请教一下如何能实现我所需要的这种串口设置呢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-9-9 15:44:47 | 显示全部楼层

  1. #define  CHECK_NONE_ONE_STOP    0 //无校验位  1个停止位  1有效  0 无效
  2. #define  CHECK_NONE_TWO_STOP    0 //无校验位  2个停止位  1有效  0 无效
  3. #define  CHECK_EVEN    1          //偶数校验   1有效  0 无效
  4. #define  CHECK_ODD     0          //奇数校验   1有效  0 无效
  5. void Uart1_Init( unsigned int baudrate )
  6. {
  7.     unsigned int baud;
  8.     baud = 16000000 / baudrate;
  9.     Uart1_IO_Init();
  10. #if CHECK_NONE_ONE_STOP           // 如果 CHECK_NONE_ONE_STOP 为真
  11.     UART1_CR1 = 0x00;             //CR1 M=0 无校验位  设置M字长=0, 起始位|8位数据位|结束位    无校验
  12.     UART1_CR3_bit.STOP = 0;       //一个停止位
  13. #elif CHECK_NONE_TWO_STOP
  14.     UART1_CR1 = 0x00;             //CR1 M=0 无校验位  设置M字长=0, 起始位|8位数据位|结束位    无校验
  15.     UART1_CR3_bit.STOP = 2;       //两个停止位
  16. #elif CHECK_ODD
  17.     UART1_CR1 = 0x16;             //CR1 M=1 有校验位 设置M字长=1,起始位|8位数据位|奇偶校验位|结束位 奇校验odd
  18. #elif CHECK_EVEN
  19.     UART1_CR1 = 0x14;             //CR1 M=1 有校验位   设置M字长,起始位|8位数据位|奇偶校验位|结束位   偶校验even
  20. #endif
  21.     UART1_CR2 = 0;
  22.     UART1_BRR2 = ( unsigned char )( ( baud & 0xf000 ) >> 8 ) | ( ( unsigned char )( baud & 0x000f ) );
  23.     UART1_BRR1 = ( ( unsigned char )( ( baud & 0x0ff0 ) >> 4 ) );
  24.     UART1_CR2_bit.REN = 1;        //接收使能
  25.     UART1_CR2_bit.TEN = 1;        //发送使能
  26.     UART1_CR2_bit.RIEN = 1;       //接收中断使能
  27. }
复制代码


回复

使用道具 举报

2

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2018-4-15
在线时间
34 小时
发表于 2019-9-9 17:58:20 | 显示全部楼层
传输是8位 但是你要的数据是7位 那你可不可以约定最高位的数据只是用0作为填充 但是你实际数据把最高位的废弃
回复

使用道具 举报

21

主题

131

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2019-5-12
在线时间
168 小时
发表于 2019-9-30 09:02:22 | 显示全部楼层

想问下,如何在您上传代码时显示行号?我之前一直没弄出来
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-10-15 11:08:52 | 显示全部楼层
选择高级模式,然后插入代码段。
1.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 12:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表