9058|12

23

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教一个STM32F103的USART的问题! [复制链接]

                                 请教一个USART的问题,请问在STM32F103中怎样发送指定的第9位数据啊,就是在51中实现的第9位数据(RS485中多机通讯地址与数据的区别),谢谢了,在ARM中可以用奇偶校验位的设置来完成,可是F103中好像不能硬性的指定奇偶校验位的值啊,大家有其它的什么方法吗?
此帖出自stm32/stm8论坛

最新回复

                                 好!谢谢了!!主要是用于RS485通讯时,地址与数据的区别。  详情 回复 发表于 2009-11-27 16:13
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

推荐
 
                                 对了USART_DR寄存器的DR是9位的,直接写9位数据就好了。
此帖出自stm32/stm8论坛
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
设置USART_CR1寄存器的M位使能9位数据格式:

STM32_USART_Format.jpg (49.13 KB)

STM32_USART_Format.jpg

此帖出自stm32/stm8论坛
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 谢谢了,我的意思是第9位不用作奇偶校验,而在发送数据的时候作人为的置1或置0,这样好像不行?谢谢!!
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
第9位可以作为数据而不是奇偶检验位。

你没有看到我贴的图上,在"位8"的地方清楚地标明"可能的奇偶检验位"吗?这个意思就是"位8"或者是数据位,或者是奇偶检验位。
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 谢谢班主了,我想用STM32F103V8的芯片,能不能给个连接,下载一份完整一点的资料,我怎么下了半天多份资料,都是各种功能都只讲一下,但都不详细,我找了半天也没找到USART的第9位作为数据,在发送时软件将其置0,置1的方法,谢谢了!!
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
请在ST中文网站下载:《STM32F10x微控制器参考手册》
或在英文网站下载对应的英文版本,地址见我的签名。

http://www.stmicroelectronics.com.cn/stonline/mcu/MCU_Pages.htm
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 多谢!多谢!多谢!多谢!
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

8
 
班主,还是要问一下,我在luminary的LM3Sxxx型号中看到了有“设置奇偶校验位恒为1,0”的方法,但ST的STM32F10X中却没有提到这个功能啊!!我本来是想选luminary的,但它的IO太少了,刚好ST的有100PIN的,对我很适用,但这个功能我看了好久都没有确定ST的STM32F10X的第9位到底能不能人为的置1或置0,

//////////////////以下是luminary的LM3S系列////

void UARTParityModeSet(unsigned long ulBase, unsigned long ulParity)
{
    //
    // Check the arguments.
    //
    ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) ||
           (ulBase == UART2_BASE));
    ASSERT((ulParity == UART_CONFIG_PAR_NONE) ||
           (ulParity == UART_CONFIG_PAR_EVEN) ||
           (ulParity == UART_CONFIG_PAR_ODD) ||
           (ulParity == UART_CONFIG_PAR_ONE) ||        //设置奇偶校验位恒为1,
           (ulParity == UART_CONFIG_PAR_ZERO));        //设置奇偶校验位恒为0,

    //
    // Set the parity mode.
    //
    HWREG(ulBase + UART_O_LCR_H) = ((HWREG(ulBase + UART_O_LCR_H) &
                                     ~(UART_LCR_H_SPS | UART_LCR_H_EPS |
                                       UART_LCR_H_PEN)) | ulParity);
}

//////////////////以下是ST的
#define USART_Parity_No                      ((uint16_t)0x0000)
#define USART_Parity_Even                    ((uint16_t)0x0400)
#define USART_Parity_Odd                     ((uint16_t)0x0600)
#define IS_USART_PARITY(PARITY) (((PARITY) == USART_Parity_No) || \
                                 ((PARITY) == USART_Parity_Even) || \
                                 ((PARITY) == USART_Parity_Odd))
///////////////////////////////////////

另外请问一下班主,杭州这边哪有代理ST的,仔细的请教一下你们的FAE,我在数据手册上真的没找到这个功能该怎么使用?
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
luminary和stm32只是用了相同的core,外设都是厂商自己加的,怎么会相同?

另外不懂你在纠结什么,参考手册上写的很清楚么:
USART_CR1的
M:Word Length
This bit determines the word length. It is set or cleared by software.
0:1 start bit, 8 data bits, n stop bit
1:1 start bit, 9 data bits, n stop bit


PCE: Parity control enable
This bit selects the hardware parity control.when the parity control is enabled, the computed parity is inserted at the MSB position(9th bit if M=1;8th bit if M=0) and parity is checked on the received data.
0: parity control disabled
1: parity control enabled.

你所要做的是设置M=1, PCE=0。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 还有把串口通信数据用9位的,稀奇!
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 这个可以实现的
此帖出自stm32/stm8论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 好!谢谢了!!主要是用于RS485通讯时,地址与数据的区别。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表