2015年1月14日

STM32使用USART初始化的时候发送一个无效数据

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

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

STM32使用UCOS在中断中使用信号量发送函数

摘要: STM32使用UCOS在中断处理函数里面,当使用OSSemPost()函数的时候,是不会引起任务切换的,直到这个中断结束才会引起切换,同理我认为其他事件的发送都是一样的,例如:OSMsgPost() 阅读全文

posted @ 2015-01-14 15:47 Life's coding 阅读(2059) 评论(0) 推荐(0) 编辑

不使用中间变量,交换变量值

摘要: 方法一:采用异或的方法b^=a;a^=b;b^=a;注:1.异或法可以完成对整型变量的交换,对于浮点型变量它无法完成交换。2.有说这种方式其实并没加快运行速度,http://blog.csdn.net/solstice/article/details/5166912方法二:采用加减法a+=b;b=a... 阅读全文

posted @ 2015-01-14 15:46 Life's coding 阅读(357) 评论(0) 推荐(0) 编辑

STM32的USART的RXNE不能置位或无法置位的原因

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

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

STM32中assert_param的使用

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

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

C语言中static的用法

摘要: 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。第1个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。St... 阅读全文

posted @ 2015-01-14 15:43 Life's coding 阅读(759) 评论(0) 推荐(0) 编辑

UCOSII查询消息队列的状态

摘要: 在调用OSQQuery时,需要这样定义:OS_Q_DATA qdata;OSQQuery(q1, &qdata);不能这样定义:OS_Q_DATA *qdata;OSQQuery(q1, qdata);会触发HardFault_Handler()中断,原因就是没有申请空间。 阅读全文

posted @ 2015-01-14 15:19 Life's coding 阅读(270) 评论(0) 推荐(0) 编辑

STM32使用自带函数实现byte逆序

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

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

C语言的运算小技巧

摘要: 取模:x/8等价于x>>3取余:x%8等价于x&7取反:~x等价于x^0xFF 阅读全文

posted @ 2015-01-14 14:32 Life's coding 阅读(252) 评论(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 阅读(782) 评论(0) 推荐(0) 编辑

导航