
stm32
kernel1101
自强不息,厚德载物
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
stm32为什么给有些寄存器赋值确不会影响其他位?USARTx->SR = (uint16_t)~USART_FLAG
新手小白可能会遇到的问题:stm32为什么给有些寄存器赋值确不会影响其他位?在stm32的库函数中可以看到有的关于位的操作不是用位与位或,而是直接赋值,但确不会影响其他位,例如:USARTx->SR = (uint16_t)~USART_FLAG,原因在于sr寄存器只能硬件置1,软件写1无效,关于这些寄存器的错作细则可以在stm32的手册中查询,在对寄存器的描述中使用了下列缩写:read原创 2015-08-12 18:00:33 · 4059 阅读 · 0 评论 -
error: #268: declaration may not appear after executabl statement in block
小白的问题:stm32用keil4编译时出现:error: #268: declaration may not appear after executabl statement in block 出现这个错误的原因在于C语言关于变量的定义只能放在函数的开头,应该放在执行语句的前面定义,才不会出错~例如函数void TIM_Config(void){原创 2015-08-12 15:32:30 · 9866 阅读 · 1 评论 -
Error: L6218E: Undefined symbol main (referred from entry9a.o).
Error: L6218E: Undefined symbol main (referred from entry9a.o).Error: L6218E: Undefined symbol main (referred from rtentry2.o).新手建立keil工程文件时出现main未定义出现上述错误;1.如果main函数书写时出错,把main写mian,会出现原创 2015-08-11 10:48:51 · 20833 阅读 · 5 评论 -
小白关于keil4调试仿真的几个问题:一直停在systeminit中的do,while;程序一直停在启动文件中的BX R0;void HardFault_Handler(void),
分享学习,共同成长:这几个问题都是新手比较头痛的,新手在出现HardFault时,可能不是因为内存溢出,访问越界或是堆栈溢出,有可能仅仅只是自己一些最基本的规则没弄清楚而导致,所以分享下自己一些小问题,让新手朋友们出现类似问题可以借鉴下;1 调试时程序一直停在SystemIit()中的等待晶振中是DEBUG里面的设置有问题,调用的DLL错误,在Dialogue原创 2015-08-04 00:24:51 · 20884 阅读 · 3 评论 -
stm32为什么用printf重定向到串口第一个字符打印不出
stm32用printf函数重定向到串口USART1发现第一个字符没打印出来具体如下:刚开始修改fputc函数如下:int fputc(int ch,FILE *f){USART_SendData(USART1,(uint8_t)ch);while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);return(ch);原创 2015-08-06 23:21:51 · 7571 阅读 · 0 评论 -
为什么用了#ifndef还说我重复定义?
在keil4中的头文件已经使用宏开关#ifndef、#endif,但还是出现重复定义的问题:因为#ifndef只能保证重复包含时,只包含一次。但在不同的C文件是分别进行编译的,所以另一个C语言里的#define对另一个C文件不起作用。也就是说正确的作法应该这样:1)在头文件里只声明不定义2)把定义定义在C文件里学习遇到的一点问题,找到的一点资料共享,就当笔记~~~~~~原创 2015-09-05 22:22:51 · 4369 阅读 · 1 评论