推荐阅读最新更新时间:2024-11-01 18:57
介绍一个蓝牙小车的程序
简介:这个是这个蓝牙小车的主程序,单片机用的是stm8,希望对广大爱好智能车的朋友所帮助。 #include iostm8s103k3.h #include stm8s_uart1.h #include stm8s.h void UART1_init(void); unsigned char c; void TIM2_Configuration_set(void) { TIM2_DeInit();//reset TIM2_TimeBaseInit(TIM2_PRESCALER_8, 65535);//预分频8,自动重载值为1000 TIM2_SetCounter(100);//设置计时器初值
[单片机]
STM8 AD的学习
STM8模拟/数字转换器(ADC) 采样的过程一定要满足奈圭斯特采样定理,并一般要经过采样保持、量化和编码3个步骤。 采样保持电路: 在A/D转换系统中的作用是保持模拟输入电压不变,以获得正确的数字量结果。 量化: 量化过程中所取最小数量单位成为量化单位。 STM8S105xx系列基础型产品包括一个10位连续渐进式模数转换器(ADC1),提供多达10个多 路复用输入通道。 模拟看门狗 在单次转换模式和不带缓存的连续模式中模拟看门狗可以通过置位ADC_CSR寄存器的AWDEN位来使能。当模拟电压通过ADC转换后的值低于下限门槛值或者高于上限门槛值时AWD模拟看门狗会被置位。可通过对ADC_HTR和ADC_L
[单片机]
电容式触摸感应在电磁炉中的应用研究
1 引言 ST针对家电应用特别是电磁炉应用,推出了一个基于STM8系列8位通用微控制器平台的电容式触摸感应方案,无需增加专用触摸芯片,仅用简单的外围电路即可实现电容式触摸感应功能,方便客户二次开发。 2 方案介绍 ST的电容式触摸按键方案通过一个电阻和感应电极的电容CX构成的阻容网络的充电/放电时间来检测人体触摸所带来的电容变化。如图1所示,当人手按下时相当于感应电极上并联了一个电容CT,增加了感应电极上的电容,感应电极进行充放电的时间会增加,从而检测到按键的状态。而感应电极可以直接在PCB板上绘制成按键、滚轮或滑动条的应用样式,也可以做成弹簧件插在PCB板上,即使隔着绝缘层(玻璃、树脂)也不会对其检测性能有所
[单片机]
IAR for STM8 为何可以不配置时钟?
初学STM8,先是照着网上的教程建立了一个IAR工程,然后下载一个官方的固件库,搞了一个案例模板,功能超简单,就是一个LED灯闪烁,main函数就这么点内容: void main(void) { /* Initialize I/Os in Output Mode */ GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST); while (1) { /* Toggles LEDs */ GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PI
[单片机]
STM8 HSI时钟修正寄存器
STM8 HSI时钟修正寄存器(CLK_HSITRIMR) 地址偏移值:0x0C 复位值:未定义 位7:4 保留。始终为0。 位3:0 HSITRIM :HSI修正值 由软件写入,用于微调HSI的校准值 注意:在大容量产品上,只有位2:0是可用的。 在中等容量或小容量产品上,位3:0或2:0是可用的,取决于选项字节的配置(参见数据手册)。
[单片机]
STM8的TIM1定时器简单使用
STM8的TIM1是16位高级控制定时器,简单的定时溢出中断。功能实现LED1亮500ms,灭500ms,循环往复。 #i nclude iostm8s103f3.h void CLK_init(void) { CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出 } void TIM1_init(void) { TIM1_PSCRH = 0x1F; // 8M系统时钟经预分频f=fck/(PSCR+1) TIM1_PS
[单片机]
STM8学习笔记---PWM互补波形输出
脉宽调制(PWM,Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 常见的用法是输出一路PWM波,可以通过调节PWM的频率和占空比来控制电路。还有另一种方法是输出一组互补的PWM波,这两个波形频率相同,相位相反,两组波形之间有死区控制时间。 STM8单片机自带PWM互补波形输出功能,通过资料可以看出 STM8共有3个死区时间可调的互补输出。 本次实验用的STMs8003单片机有2个互补输出。 PC6口和PC3口是定时器1通道1互补输出。PC7口和PC4口是定时器1通道2互补输出。 要配置输出互补P
[单片机]
调试STM8/stm32串口时发现的问题
描述:串口中断1用来接收到的数据,我是用串口助手发送一个8字节的数据,然后我想查看8个字节是否被单片接收,比如数据是0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08这8个数值,串口中断 #pragma vector=ITC_IRQ_UART1_RX + 2 __interrupt void Uart1RxdInt(void) { //此函数内已完成清中断标志 u8 ret; if(UART1_GetFlagStatus(UART1_FLAG_RXNE)!=RESET) { tmp = UART1_ReceiveData8(); ret=UAR
[单片机]