随笔分类 -  STM32F1

STM32使用USART初始化的时候发送一个无效数据
摘要:STM32使用USART初始化的时候发送一个无效数据,解决办法:先配置USART,再配置GPIO。注:发送无效数据,有说是硬件使然,有说是配置不好,我没证实。 阅读全文

posted @ 2015-01-14 15:48 Life's coding 阅读(407) 评论(0) 推荐(0)

STM32的USART的RXNE不能置位或无法置位的原因
摘要:最近刚接触STM32的USART,发现问题还真是不少,本来觉得没什么,却是耽误了好久,这次遇到的问题是:STM32的USART的RXNE不能置位或无法置位。是仿真的时候发现这个问题的,我用自发自收,发现发送的太快了,接收数据的数目就不对了,延迟200ms啊,再慢也应该发出去了,就查原因到一直进入发送... 阅读全文

posted @ 2015-01-14 15:45 Life's coding 阅读(7100) 评论(0) 推荐(0)

STM32中assert_param的使用
摘要:在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义。在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。所谓有效的参数是指满足规定范围的参数... 阅读全文

posted @ 2015-01-14 15:44 Life's coding 阅读(276) 评论(0) 推荐(0)

STM32使用自带函数实现byte逆序
摘要:当一个8位数为0b00101110,你希望使其位逆序,即:0b01110100,可以使用__rbit()函数,此函数操作的参数为32位。示例如下://------------------------------------------------------------------// Brie... 阅读全文

posted @ 2015-01-14 14:42 Life's coding 阅读(1012) 评论(0) 推荐(0)

STM32的USART模块CR1的第15位
摘要:CR1_OVER8_Set,位于CR1的第15位,但是手册里面没有提到(rev14);根据手册里面提到的波特率计算公式,估计默认这个位是0,代表每个bit采样16次,而置位的时候,每bit采样8次。 阅读全文

posted @ 2015-01-14 14:26 Life's coding 阅读(806) 评论(0) 推荐(0)

STM32的USART使用DMA接收带校验位的数据
摘要:工作中用到了一个数据包里面的数据采用不同的校验方式,一部分为奇校验,一部分为偶校验.这时我的方案为: 1.USART设置9bit数据长度,1个停止位,无校验位,这时确保能接收到带校验位的数据 2.设置DMA接收和发送数据,设置外设地址和内存地址都为halfword(16bit)可以接收到带校验位的数... 阅读全文

posted @ 2014-10-14 10:45 Life's coding 阅读(1104) 评论(0) 推荐(0)

关于STM32串口空闲中断的问题
摘要:1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发break中断)。2.关于第二点有要铺垫的三个情况,datasheet中 "当一空闲帧被检测到时,其处理步... 阅读全文

posted @ 2014-08-29 17:17 Life's coding 阅读(16282) 评论(0) 推荐(0)

导航