- 博客(90)
- 资源 (24)
- 收藏
- 关注
原创 讨论孩子教育问题
不知不觉,孩子已经长大,虽然感到很欣慰,但在教育方面却无从下手;如有经过有好的建议或者经验者,请不吝赐教,写在评论处,这样也方便他人阅读,万分感谢!
2017-02-14 14:54:31 514 1
原创 程序的模块化的一些见解6-读牛人代码之感
今天看来一位牛人的程序,说是牛人,一点不夸张,在行业做了10年多,平时做的项目快问题少,因为他有自己的成熟模块,自己也很熟悉,而且还是用汇编写的程序,在控制方面很多客户见了之后,经常毫不犹豫选择他的程序控制。虽然我入行也有3、4年,但就是很难看懂他的程序,个人觉得原因:1:没有注释2:缺少沟通 3:自己理解能力有限4:分格不一样。
2014-07-09 17:28:33 1148
原创 无线模块 RXB12-315m TXB12-315M 应用
最近有个产品用到这对模块,由于没有什么技术支持,就直接上机调试,测试结果为带障碍发射距离60米。以下是应用的几个知识点:1:编程操作,其实比较简单,调制信号315M是模块自带的,不需要调制和解调,我们只需控制自己的协议即可,我用的是红外发射的协议来控制。2:发射位和接受位是相反的,即你发送一个1,接受的是03:天线 ,这个也重要,关系到发射的距离和稳定性,可
2014-06-23 11:15:59 1971
原创 中颖内带LED资源驱动代码
//上一篇写了LCD驱动,本篇写下LED驱动//DISPCON 最高位为1时, 选择LED驱动,LCD驱动无效 最高位为0时, 选择LCD驱动,LED驱动无效 void Sh79fLed_Init(void){ uint8 i ; Bank0; DISPCLK0 = 0x6e;//0X6E //帧频率 64HZ 此设置无效 DISPCLK1 = 0x01;//0X01
2014-06-13 16:11:51 1832
原创 中颖内带LCD资源驱动代码
uint8 xdata LCDBuf[19] _at_ 0x1e0; //LCD RAM 地址 480-224//LCD模式选择#define LcdMode0 0x00 //传统电阻型 偏置和225K/900K#define LcdMode1 0x01 //传统电阻型 偏置和60K#define LcdMode2 0x02 //快速充电型 偏置于60K 与 225K/900K间
2014-06-13 15:49:39 2591
原创 中颖AD操作
#define ADC_DIS 0#define ADC_ENB 1 //ADC通道号定义#define ADC_Chanel0 (unsigned char)(0x00<<1)#define ADC_Chanel1 (unsigned char)(0x01<<1)#define ADC_Chanel2 (unsigned char)(0x02<<1)#
2014-06-13 11:56:33 2362
原创 中颖系统时钟初始化
/*1:中颖79f系列有4中振荡类型,4个震荡IO,可以从4中振荡类型中产生1种或者2中时钟。2:4种振荡类型:32.768KHZ,晶振谐振器,陶瓷谐振器,内服RC(12M/128K/12.3M)振荡器.3:编程时,振荡类型由编译选项选择确定。4:系统时钟控制器 CLKCON 具体资料可看datasheet5:具体操作如下:*///====时钟分频===== #defi
2014-06-12 17:28:14 2051
原创 中颖IO口初始化
虽然简单,但对于初学者还是有一定的帮助。#define Bank0 INSCON &= 0xbf#define Bank1 INSCON |= 0x40Bank0;//Bank0内操作P0 =Bin(10000100);P0CR =Bin(10000100);//0为输入 ,1为输出P0PCR = Bin(01000000);//上拉P0 =
2014-06-12 17:08:21 2637 1
原创 中颖EEPROM 操作
/* 中颖EEPROM,使用比较方便,但有个注意点,就是每次无论你写入 什么数据或者在哪个地址写数据,都需要将对 对应的块擦除,擦 除后才能写入成功。*///数据区 扇形区1#define ADDR_START1 (uint16)0x100 //数据存储区起始地址#define ADDR_START2 (uint16)0x200 //数据存储区起始地址//数据区
2014-06-10 11:19:25 3829 1
原创 程序模块化的阶段性总结
好程序员不一定能写出好博文,但能写出好博文的一定是好程序员。因为我觉得我一直没有能把文字表达清楚,我在我的博文里也提到过,当然了,我并不是一个很好的程序员,但我一直努力着改变自己,只求每天会更好一点。 好了,不多说多余的了。我想了想,选择的主题是程序模块会的见解——主要是对近期发表的程序模块会的见解总结下,
2014-06-09 22:15:11 2775 1
原创 中颖TIM4定时初始化
//==timer4 define=====#define TIM4_DIV1 0X00#define TIM4_DIV8 0X01#define TIM4_DIV64 0X02#define TIM4_DIV256 0X03#define Timer4_Cnt_Enb Bank1;T4CON |= (1<<1) //允许计数#define Timer
2014-06-09 16:47:47 1821 1
原创 程序的模块化的一些见解5-移植性-实例说明
我一直以来认为技术性的文档很重要,但事实上我做得不好,主要是我想做,但我做得不够仔细,不够清晰,不够完整。不过,我一直在改善着,希望各位多多指点。 今天我想表达的是一个关于程序模块化的移植性,通过一个实例来描述。说得好,大家顶一下,说得不好,大家顶两下,嘻嘻。函数功能很简单:扫描LED LED的显示有不亮、闪烁、常亮 3种方式,其中闪烁次数是有规定的,我的是3次(具体是 闪烁3次,周期
2014-06-09 11:23:34 1575 1
原创 华摄氏度和摄氏度的转换小数点处理 单片机
上一篇博客写到 华摄氏度和摄氏度的相互转换,有个细节要注意下,嘻嘻,细节决定成败。由于是无符号整型的运算,这里涉及到的小数点的处理,即四舍五入的处理,不然,小数部分就被直接去掉了,如果结果是65.8,当然,你要的结果是66,而不是65,对吧?具体为如果CelEquVal * 9 / 5 + 32 运算后的小数大于等于0.5 ,预算后的结果应该再加1,才更接近运算值。我是这么处理的,现将被除数
2014-06-07 21:11:22 3816 1
原创 华摄氏度和摄氏度的转换 华摄氏度转化摄氏度 使用带运算的宏定义
定义:摄氏度:CELSIUS EQUALS 华氏度:FAHENHEIT EQUALS彼此间的转换很容易,如下: 将摄氏度转成华氏度:将摄度以氏直接乘以9,除5,再加上32 华氏度转成摄氏度:将华氏度减去32,乘以5再除以9写成公式:CelEquVal --摄氏度FahEquVal
2014-06-07 19:29:16 9913
原创 关于逻辑或的一个小小应用注意点
这两天在完成一个新的项目,由于是新的,所以,很多都是重新写的,其中发现自己犯了一个比较低级的错误,弄了大半天,原来是写的格式错误,具体如下,希望其他博友不要和我一样,导致浪费时间在修改BUG,更重要的是影响心情。主要目的:如果 A 等于 6 或者 A 等于 8 ,B等于 9 否则 B 等于 10;当然,以上是我简化后的表达。错误写法:if(A == (6 ||
2014-06-07 18:38:41 1015 1
原创 程序的模块化的一些见解3
现在的产品,往往不能一次性完成程序,客户体验后一般都会增加 或者修改程序。对于新增加的程序,我会常常增加多一个标志位或者 几个标志位来完成,因为这样比较直观容易理解,但逻辑性往往没有 那么好,致命的是,由于标志位没有及时清除,可能后果不堪设想, 当然,有经验的程序员往往会想到这个问题,就是增加时候,也考虑 了清除标志位。 因此,对于功能性比较重要的,还是建议完全理解
2014-05-31 08:33:45 1388
原创 多功能检测按键-3 按键扫描 单按 长按 多个按键 响应方式
/***************************************// 函数功能:按键扫描//这是我第三次对按键扫描的优化,为什么我要这么做呢,很简单,//我只想将简单的事情不断完善好//第一次发表:http://blog.csdn.net/chuangwu2009/article/details/9466715//第一次发表:http://blog.csdn.net/ch
2014-05-23 10:34:10 4358 2
原创 STM8S PWM 应用 呼吸灯
//主功能接受:使用MCU STM8S105C6 的PWM通道2 PC2 来做呼吸灯 已经验证OK,呵呵,这个PWM设置刚开始用还是有点麻烦,因为是自己摸索,花点时间,还是攻克了。//所用子函数都是调用STM8S的库函数stm8s_tim.c 中的。宏定义://分频宏//计数器的时钟频率(fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)。#define TIM
2014-05-20 11:41:11 11425 2
原创 STM8S 串口应用 UART2 STM8S105
//少说话,多做事,以下是我验证过没有问题的串口发送接受数据//使用MCU stm8s105c6 UART2void UART2_DeInit(void){ u8 dummy = 0; /*< Clear the Idle Line Detected bit in the status rerister by a read to the UART2_SR re
2014-05-19 10:07:44 11792
原创 STM8S AD转换
//不说那么多了,直接上程序void ADC1_DeInit(void){ ADC1->CSR = ADC1_CSR_RESET_VALUE; ADC1->CR1 = ADC1_CR1_RESET_VALUE; ADC1->CR2 = ADC1_CR2_RESET_VALUE; ADC1->CR3 = ADC1_CR3_RESET_VALUE;
2014-05-19 09:00:28 5042
原创 程序员的德智体美劳
当与人争执时:我们能做到德 当任务艰巨时:我们体现智 当经常加班时:我们要注意体 当在写代码时:我们要注重美 当生活混乱时:我们要劳逸结合
2014-05-18 18:14:26 1313 4
原创 STM32学习笔记3-IO配置输入输出
STM32的IO配置时没什么特殊的,有个注意点就是实用IO前需要先打开其时钟线,以下是验证过oK的程序: RCC->APB2ENR|=GpioBApb2enrEn; //使能PORTB时钟 GPIOB->CRL&=GpioBitClrM5_13; // IO的模式清零 GPIOB->CRL|=GpioBit5PP;//PB.5 推挽输出 GPI
2014-05-18 17:06:58 2739
原创 STM32学习笔记2-系统时钟知识及程序配置
一:基本知识 1、 STM32F103ZE有5个时钟源:HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时 钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时
2014-05-18 10:40:25 2642
原创 keil 中的一些设置
option for target 'target 1' 中:第3选项output: select folder for objects :此选项是选择编译时产生的以希望文件,点击选择路径,不然这些文件就会生成并保存在和项目文件.prov 同个文件下,导致项目文件不好找。第4选项listing:也是同第3选项同样原理。 第6选项c/c++:在include paths 设置h文件路
2014-05-18 10:31:10 2809
原创 STM32学习笔记1-软件安装
今天收到自己买的STM32F103ZE为主芯片的开发板,标志着我正式进入实践阶段,之前看了不少ARM的资料,都是零零散散的,也没有什么系统的总结,总觉得美誉找到真正的感觉。好了,废话少说,以下是我今天收到开发板后的学习总结。 由于还不清楚什么如何运作,就按照提供的资料的视频一步一步做: 第1步:上电检测开发板是否正常。第2步:安装驱动和软件。 驱动:JLINK驱
2014-05-18 10:07:03 1161
原创 STM8S 独立看门狗配置及使用
//独立看门口的时钟来源 内部低速时钟 128khz 除以2 即64khz//选择 IWDG_Prescaler_128//64/256 =0.5 khz 2ms周期#define IWDG_500MS_REST (uint8)250#define IWDG_400MS_REST (uint8)200#define IWDG_300MS_REST (uint8)15
2014-05-17 11:25:02 10771
原创 编译器 STVD 与 IAR 的区别 个人体验
编译器 STVD 于IAR1:全局查找功能:STVD:全局查找功能全局查找功能比较麻烦,有3个动作。IAR:有全局查找功能比较方便,只要一个动作,和KEIL一样。2:编译时间STVD:相对比较慢。IAR:相对快点。因为IAR可以分两个工程文件放置,编译时候我们可以只要编译更改的工程文件就可以了。因此就不用将所有文件都编译一次,以此省一点时间。
2014-05-17 10:20:07 10551
原创 STM8S EEPROM 操作
STM8S 内置EEPROM,对于很大需要带记忆的产品来说,是个很好的资源,以下是我个人摸索出来的,并且验证OK,大家如需要可放心使用。 #define EEPROMADDR0X000 ((u32)(FLASH_DATA_START_PHYSICAL_ADDRESS)) #define EEPROMADDR0X001 ((u32)(FLASH_DATA_START_PHYSICA
2014-05-17 10:06:23 3682
原创 stm8s 时钟库函数选择内部RC初始化
//本文选择16M内部RC震荡,分频为1 即系统时钟为16Mvoid CLK_HSICmd(FunctionalState NewState){ /* Check the parameters */ assert_param(IS_FUNCTIONALSTATE_OK(NewState)); if (NewState != DISABLE) {
2014-05-17 08:08:16 4798
原创 使用IAR编译STM8S 如何生产烧录文件
IAR编译后可以生成的烧录文件格式有4中,如下第一种是Motorola,其生成文件和STVD生成烧录文件.s19格式一样的,即可以通用第二种是16进制,keil等等常都用到的;第三种是二进制的,个人比较少用第四种是??我也没有用过。IAR中格式选择:按图指示:I至此,重新编译,即可生成想要的
2014-05-16 16:22:35 10922 3
原创 STM8S TIM4库函数应用
void TIM4_TimerInit(u8 Timer4Time){ assert_param(IS_TIM4TIMERTIME_OK(Timer4Time)); TIM4_DeInit();//复位TIM4所有参数 TIM4_TimeBaseInit(TIM4_PRESCALER_16,Timer4Time);//16M/16= 1M CYCLE=1/1=1U 100us
2014-05-16 14:48:15 3349 2
原创 STM8S TIM1库函数应用
个人觉得ST的库函数用起来还是挺不错的,之前都是使用自己写的函数,容易改出错,以下是验证过的,TIM1定时100微妙中断一次。void TIM1_TimeBaseInit(u16 TIM1_Prescaler, TIM1_CounterMode_TypeDef TIM1_CounterMode,
2014-05-16 14:44:28 7556
原创 使用 stvd 编译STM8S 时能看到使用RAM ROM大小的方法
刚刚安装的STVD编译器,编译时候不显示用了多少RAM和ROM?对于此问题,有两个方法:一是看.map文件 另一种是 怎加一个补丁,具体操作如下,可以在我的资源里下载相应的文件。网上找到的:1. 将附件压缩包中的mapinfo.exe解压到stvd的\安装路径\STMicroelectronics\st_toolset\stvd中;2. 用stvd打开你的工程文件,在工程上点右
2014-05-15 11:26:21 7485 1
原创 NTC 家电中的应用2 加热比 温度补偿
其中一种方法:温度补偿,如果应用好的话,控制的温度也是比较准的。另外一种方法:利用加热比来控制,其效果也不错,就是需要一定的调试时间。
2014-05-13 09:01:30 2500
原创 NTC 家电中的应用1
NTC应用很广,特别是家电产品中,基本上凡是涉及到温度控制的都会选择它。本人应用的的产品有打奶器,电烤箱,油炸锅,咖啡机,直发器,暖风机和电壁炉,虽然应用广,但都是千篇一律。其中最主要的要点是应用中NTC有滞后性,即外部环境温度变化比NTC自身变化快,比如外部环境在3秒内降下5°,NTC可能下降4°甚至没有变化。 对此,为了让我们要控制的温度比较接近要求,我们就得进行一些处理,当然
2014-05-12 11:41:54 1501
原创 NTC的一些知识
NTC负温度系数热敏电阻工作原理NTC是Negative Temperature Coefficient 的缩写,意思是负的温度系数,泛指负温度系数很大的半导体材料或元器件,所谓NTC热敏电阻器就是负温度系数热敏电阻器。它是以锰、钴、镍和铜等金属氧化物为主要材料, 采用陶瓷工艺制造而成的。这些金属氧化物材料都具有半导体性质,因为在导电方式上完全类似锗、硅等半导体材料。温度低时,这些氧化物材
2014-05-12 11:28:43 3583
FM1906.pdf
2020-09-16
STVD编译器 看RAM字节补丁
2014-05-15
c和h的联系
2013-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人