- 博客(25)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注
原创 总结
1. 这一款kit比较垃圾,硬件有问题,给的例程也有问题,打算购买discovery。2. 有些例子只是看了一遍,没有真正的去做,回头再把没弄明白的地方搞懂。
2016-09-27 23:41:28 297
原创 CH372
1. CH372是一款usb芯片。2. 没有实验现象? GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);//GPIO初始化 GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_Mode_In_PU_IT);//初始化按键,GPB6上拉输入
2016-09-27 23:37:25 1549
原创 RTC
1. 实时时钟,以32.768kHz作为源时钟比较准确。2. 在lcd上显示时钟。 unsigned short temp1,temp2; CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);//RTC时钟使用LSE CLK_PeripheralClockConfig (CLK_Peripheral_
2016-09-27 23:22:02 622
原创 段式液晶
1. stm8l152与stm8l151相比,多了一个液晶显示器。2. 读取电压值,然后再lcd上显示出来。 InitLCD(); u16 u16_adc1_value; u16 VoltageValue; CLK_PeripheralClockConfig (CLK_Peripheral_ADC1,ENABLE);//开启ADC/USART时钟
2016-09-27 23:09:26 921
原创 DAC
1. 模数转换的逆过程。2. 本实现设计为:设定一个值,从而改变某个引脚的电压值。 CLK_PeripheralClockConfig(CLK_Peripheral_DAC, ENABLE);//打开外设DAC时钟 CLK_PeripheralClockConfig(CLK_Peripheral_COMP, ENABLE);//打开外设比较器时钟,必须打开 // R
2016-09-27 00:53:22 1126
原创 I2C
1. I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。2. 本实现设计为:先向E2PROM写一个数据,再读出这个数据,再向串口发送这个数据,看显示是否正确。 GPIO_Init(LED1_GPIO_PORT, LED1_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);/
2016-09-27 00:32:45 543
原创 WFI
1. WFI与WFE的区别为,WFI等待的是中断,而WFE等待是事件,所以WFE不能进入中断服务函数,而WFI可以。2. 实验现象和WFE一样。 CLK_Config();//切换LSI为主时钟 //不使用的IO全部设置为输出低电平 GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
2016-09-25 16:26:32 2220
原创 WFE
1. 等待事件模式,cpu停止工作,外设和中断控制器继续工作。2. 等待的事件到达后,led灯反转。 CLK_Config();//切换LSI为主时钟 //不使用的IO全部设置为输出低电平 GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow); GPIO_Init(GPIOB, G
2016-09-25 16:21:08 940
原创 低功耗等待模式
1. 该模式在低功耗运行模式的基础上,通过wfe指令进入。指定的事件到达时,从该模式退出,进入低功耗等待模式。cpu停止工作,中断禁止。2. 本实验无明显现象 CLK_Config();//切换LSI为主时钟 CLK_HSICmd(DISABLE);//关闭HSI等所有不使用的外设,ADC在此模式下无效;关闭所有中断源 //不使用的IO全部
2016-09-25 16:11:19 1076
原创 低功耗运行模式
1. cpu和部分外设运行,切换到低速时钟(内部或者外部),通过软件或者复位的方法退出该模式,所有的中断都被屏蔽。2. 本实验暂时没有明显的现象。 CLK_HSICmd(DISABLE);//关闭HSI等所有不使用的外设,ADC此模式下无效;关闭所有中断源 CLK_Config();//切换LSI为主时钟 //不使用的IO全部设置为输出低电
2016-09-25 16:03:26 1646
原创 active-halt模式
1. 这种模式与halt模式的区别就是RTC是工作的,且可以使用RTC中断来唤醒,利用外部低速时钟作为时钟源。2. 本实验设计为:按键之后,led灯亮灭交替,要接外部时钟需要单独飞一根线接时钟源。void CLK_Config(void){ /* Select HSE as system clock source */ CLK_SYSCLKSourceSwitchC
2016-09-25 15:52:42 2989
原创 halt低功耗模式
1. stm8l152有5种低功耗模式,wait mode, low power run mode, low power wait mode, active-halt mode, halt mode.2. 在halt模式下,cpu和外设时钟停止,可以通过外部中断或者复位来唤醒。3. 本实验设计为:led灯亮,紧接着进入halt模式,有按键时,中断,快速唤醒,led灯灭。
2016-09-25 15:37:15 4759
原创 外部中断
1. 外部中断的例子和io查询刚好对应起来,中断的效率明显高于查询。2. 本实验设计和io查询的例子一样,按一下按键,led灯亮灭一次。 GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_High_Slow); GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_Mode_In_P
2016-09-25 11:24:27 707
原创 ADC
1. AD采样通道有多种,比如光敏、电压值、温度等等。2. 本实验采集光敏通道的值,然后通过串口输出到上位机。 CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);// 开启串口时钟 CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);//开启ADC时钟
2016-09-25 09:47:07 682
原创 graphics.h
最近想用c语言做一些项目,搜到了深入体验c语言项目这本书,一看第一章,就需要用到graphics.h这个库,从网上搜到很多资料,了解到,graphics.h是个老古董了,是TC时代用的,所以以目前的32位机器或者64机器以没发用TC运行graphics.h相关的程序的。网上也有人说到用devc++,vc, vc6.0++可以引用graphics.h,试了devc++,没成功。最后看到有人说用eas
2016-09-23 01:00:51 1900
原创 USART接收中断
1. 发送数据不需要中断,但是接收数据需要利用中断来处理,这样效率比较高。2. 本实验设计为:上位机串口发送字符,单片机收到这些字符后,又向上位机转发过去。 CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE); USART_Init(USART1, 9600, USART_WordLength_8b, USART_Sto
2016-09-22 15:37:02 3053
原创 UART发送字符串
1. 与发送16进制的程序差不多,上个程序是给变量里面赋数字,这个程序是赋值字符,然后再一个一个往上位机发送就可以了。2. 把USB转串口和仿真器同时接上的时候,上位机可以正常接收,但是把仿真器去掉的时候,接收就不正常了。这是什么原因? char str[] = "Jimmy"; int i; CLK_PeripheralClockConfig(CLK_Peripheral_
2016-09-22 14:32:38 6056
原创 UART发送16进制
1. 程序下载好后要先断开仿真器,连上usb转串口,才能进行串口通信。2. 本实验设计为: 单片机不断发送数据,上位机接收数据 CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);//使能串口时钟 USART_Init(USART1, 9600, USART_WordLength_8b, USART_StopBits_1
2016-09-22 11:17:29 3705
原创 程序是怎样加载到内存运行的
最近一直有一个念头在脑海里,那就是程序是怎么运行的?参考了一些资料,总算稍微理清了一点思路:程序编译后分为几段,比如代码段,数据段,加载运行后,先是创建一个进程,再把相应的段映射到相应的位置,然后根据pc的值,一条一条的执行完指令。参考资料:可执行文件内存布局?http://www.cnblogs.com/fengyv/p/3789252.html 可执行文件含义?
2016-09-21 21:22:48 6754
原创 定时器中断
1. stm8l152定时器分为高级定时器,通用寄存器,和基本定时器,本实验用的是基本定时器TIM4.2. 本实验设计为利用定时器中断实现led灯的闪烁。 GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_High_Slow); CLK_PeripheralClockConfig(CLK_Peripheral_
2016-09-21 19:49:16 903
原创 时钟切换
1. 有2种时钟切换方法,自动切换和手动切换。2. 手动切换,程序在内部高速时钟下,控制led灯闪烁,当切换为低速时钟后,灯的闪烁速度应该变慢。理想情况下应该是这样的,但是没有切换过来。 GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_High_Slow); for (i = 0; i {
2016-09-21 15:57:25 2154
原创 IO轮询
1. 开发板资料给出了库例程和寄存器例程,纠结了很久到底是用库还是用寄存器来开发,其实都无所谓,选择适合自己的,要么寄存器,要么库,要么两种一起用。2. IO轮询这个例子目的是不断查询按键的状态,如果按下,则把led灯点亮。 GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_High_Slow);GPIO_Init(KE
2016-09-21 10:12:05 1079
原创 IAR,STVD和STVP的使用
1. IAR的使用2. STVD的使用http://blog.csdn.net/sy_lixiang/article/details/84618293. STVP的使用4. 相关的东西及区别http://blog.csdn.net/chuangwu2009/article/details/26050203http://www.stmcu.org/module/for
2016-09-20 20:25:13 5969
原创 GPIO
1. 使用官方配置好的demo空工程,在main函数里面添加相关代码就能开始你的stm8l152之旅了。2. 首先从点亮led灯开始。查看核心板原理图,该开发板只有一个led灯,pd4脚为低电平时,led灯亮。(1) 库函数实现方式第一步,初始化pd4引脚GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_High_Sl
2016-09-20 15:57:58 1266
原创 基础
1. 开发板以stm8l152k4为核心,开发需要用到data sheet、reference manual和库,可以去官网上下载。2. stm8l15x系列的芯片的features可以在data sheet上面获取。features:(1) 工作条件--电压1.8v到3.6v--温度-40度到85、105或125度(2) 低功耗特性--5种低功耗模式:等待模式、低功耗
2016-09-18 19:09:49 540
qt 串口通信 write 写16进制数据
2015-11-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人