<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kernel1101的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/kernel1101</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; kernel1101]]></copyright><item><title><![CDATA[PIC单片机在线仿真正常之后重新上电程序没运行]]></title><link>https://blog.csdn.net/kernel1101/article/details/52337723</link><guid>https://blog.csdn.net/kernel1101/article/details/52337723</guid><author>kernel1101</author><pubDate>Sat, 27 Aug 2016 23:38:11 +0800</pubDate><description><![CDATA[PIC单片机在线仿真正常之后重新上电程序没运行
 本次纯属学习记录分享：
          本次使用的是PIC16F886，仿真器为PICkit3，刚开始出现的现象就是在线仿真运行都可以，拔掉仿真器后重新上电就不行，这里需要在断开调试后重新下载程序到单片机里才可以，重新上电就可以，这里有个小问题就是，用ICD3仿真器可以仿真，但断开后重新下载程序一直提示编程器失败，重新用PICkit3就不会]]></description><category></category></item><item><title><![CDATA[为什么用了#ifndef还说我重复定义？]]></title><link>https://blog.csdn.net/kernel1101/article/details/48230671</link><guid>https://blog.csdn.net/kernel1101/article/details/48230671</guid><author>kernel1101</author><pubDate>Sat, 05 Sep 2015 22:22:51 +0800</pubDate><description><![CDATA[在keil4中的头文件已经使用宏开关#ifndef、#endif，但还是出现重复定义的问题：
因为#ifndef只能保证重复包含时，只包含一次。但在不同的C文件是分别进行编译的，所以另一个C语言里的#define对另一个C文件不起作用。也就是说正确的作法应该这样：
1）在头文件里只声明不定义
2）把定义定义在C文件里

学习遇到的一点问题，找到的一点资料共享，就当笔记~~~~~~]]></description><category></category></item><item><title><![CDATA[ucosII移植：可重入代码]]></title><link>https://blog.csdn.net/kernel1101/article/details/47954723</link><guid>https://blog.csdn.net/kernel1101/article/details/47954723</guid><author>kernel1101</author><pubDate>Mon, 24 Aug 2015 18:14:12 +0800</pubDate><description><![CDATA[ucosII移植：可重入代码


      先来点网上的书面化的解释：µC/OS是多任务内核，函数可能会被多个任务调用，代码的重入性是保证完成多任务的基础。可重入代码指的是可被多个体任务同时调用，而不会破坏数据的一段代码，或者说代码具有在执行过程中打断后再次被调用的能力。

再来点实货：

Swap1函数代码：

Int temp;

void  swap1(int *x,]]></description><category></category></item><item><title><![CDATA[C语言中常量后缀，u或U，l或L，f或F问题]]></title><link>https://blog.csdn.net/kernel1101/article/details/47907689</link><guid>https://blog.csdn.net/kernel1101/article/details/47907689</guid><author>kernel1101</author><pubDate>Sun, 23 Aug 2015 18:27:53 +0800</pubDate><description><![CDATA[小白在学习过程中有时会在程序中看到0u或是0ul等常量有后缀的情况，如果没接触到C语言常量后缀的话可能就有点疑惑~
其中的u为unsigned，l为long，f为float
     
    C语言中常量的默情况：整形默认为有符号int；浮点型默认为double;如果整形常量大小超出int，默认自然就为long int；如果需要无符号整形常量的话就可以在常量后面加u或是U，如0u或是0U，]]></description><category></category></item><item><title><![CDATA[stm32为什么给有些寄存器赋值确不会影响其他位？USARTx->SR = (uint16_t)~USART_FLAG]]></title><link>https://blog.csdn.net/kernel1101/article/details/47448543</link><guid>https://blog.csdn.net/kernel1101/article/details/47448543</guid><author>kernel1101</author><pubDate>Wed, 12 Aug 2015 18:00:33 +0800</pubDate><description><![CDATA[新手小白可能会遇到的问题：stm32为什么给有些寄存器赋值确不会影响其他位？在stm32的库函数中可以看到有的关于位的操作不是用位与位或，而是直接赋值，但确不会影响其他位，例如：USARTx->SR = (uint16_t)~USART_FLAG，原因在于sr寄存器只能硬件置1，软件写1无效，关于这些寄存器的错作细则可以在stm32的手册中查询，
在对寄存器的描述中使用了下列缩写：
read]]></description><category></category></item><item><title><![CDATA[error:  #268: declaration may not appear after executabl statement in block]]></title><link>https://blog.csdn.net/kernel1101/article/details/47445355</link><guid>https://blog.csdn.net/kernel1101/article/details/47445355</guid><author>kernel1101</author><pubDate>Wed, 12 Aug 2015 15:32:30 +0800</pubDate><description><![CDATA[小白的问题：stm32用keil4编译时出现：error:  #268: declaration may not appear after executabl statement in block
        出现这个错误的原因在于C语言关于变量的定义只能放在函数的开头，应该放在执行语句的前面定义，才不会出错~
例如函数void TIM_Config(void)
{
         ]]></description><category></category></item><item><title><![CDATA[Error: L6218E: Undefined symbol main (referred from entry9a.o).]]></title><link>https://blog.csdn.net/kernel1101/article/details/47416621</link><guid>https://blog.csdn.net/kernel1101/article/details/47416621</guid><author>kernel1101</author><pubDate>Tue, 11 Aug 2015 10:48:51 +0800</pubDate><description><![CDATA[Error: L6218E: Undefined symbol main (referred from entry9a.o).
Error: L6218E: Undefined symbol main (referred from rtentry2.o).

新手建立keil工程文件时出现main未定义出现上述错误；


1.如果main函数书写时出错，把main写mian，会出现]]></description><category></category></item><item><title><![CDATA[stm32为什么用printf重定向到串口第一个字符打印不出]]></title><link>https://blog.csdn.net/kernel1101/article/details/47324577</link><guid>https://blog.csdn.net/kernel1101/article/details/47324577</guid><author>kernel1101</author><pubDate>Thu, 06 Aug 2015 23:21:51 +0800</pubDate><description><![CDATA[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);]]></description><category></category></item><item><title><![CDATA[小白关于keil4调试仿真的几个问题：一直停在systeminit中的do,while;程序一直停在启动文件中的BX R0；void HardFault_Handler(void)，]]></title><link>https://blog.csdn.net/kernel1101/article/details/47266185</link><guid>https://blog.csdn.net/kernel1101/article/details/47266185</guid><author>kernel1101</author><pubDate>Tue, 04 Aug 2015 00:24:51 +0800</pubDate><description><![CDATA[分享学习，共同成长：这几个问题都是新手比较头痛的，新手在出现HardFault时，可能不是因为内存溢出，访问越界或是堆栈溢出，有可能仅仅只是自己一些最基本的规则没弄清楚而导致，所以分享下自己一些小问题，让新手朋友们出现类似问题可以借鉴下；
1    调试时程序一直停在SystemIit（）中的等待晶振中






是DEBUG里面的设置有问题，调用的DLL错误，在Dialogue]]></description><category></category></item><item><title><![CDATA[error:  #29: expected an expression，error:  #140: too many arguments in function call]]></title><link>https://blog.csdn.net/kernel1101/article/details/47259925</link><guid>https://blog.csdn.net/kernel1101/article/details/47259925</guid><author>kernel1101</author><pubDate>Mon, 03 Aug 2015 18:19:51 +0800</pubDate><description><![CDATA[新手学习stm32遇到的小问题分享：小白有时候头脑发热就会出现低级错误，以此自戒，函数调用出现错误，函数只有在定义或声明时需要定义参数才需要用到数据类型，如果调用时再使用数据类型就会出现一下问题，只需把RCC_Config(void);改为RCC_Config();即可，望新手共同进步~~]]></description><category></category></item></channel></rss>