- 博客(57)
- 收藏
- 关注
原创 stm32之30.DMA
DMA(硬件加速方法)一般用于帮运比较大的数据(如:摄像头数据图像传输),寄存器-》DMA-》RAM 或者 RAM-》DMA-》寄存器提高CPU的工作效率。
2023-09-03 22:37:34 629
原创 stm32之28.ADC
假设模拟电压2.1V,参考电压3.3v,4096/x=3.3/2.1 ->3.3x=2.1x4096 ->x=2,606.5。模拟电压/参考电压=4096/x。若对比值0~4096。
2023-09-02 20:56:49 884
原创 c语言中strstr使用
如果你有两个字符串str1="hello world"和str2="lo",那么调用strstr(str1,str2)就会返回str1中"lo"的首地址,也就是str1+3。如果你把str2改为"hi",那么调用strstr(str1,str2)就会返回NULL。printf("子串在字符串中的位置是:%d\n", p - str1 + 1);//输出子串的位置,注意要加1,因为数组下标从0开始。//调用strstr函数,查找str1中是否有str2。
2023-08-27 09:30:25 234
原创 STM32之17.PWM脉冲宽度调制
如果PWM信号的频率很高,比如大于80Hz,那么人眼就无法感知到灯的闪烁,而只能感知到灯的亮度。这时候,占空比越大,表示高电平的时间越长,灯就会越亮。如果PWM信号的频率很低,比如小于50Hz,那么人眼就能感知到灯的闪烁,而不是灯的亮度。这时候,占空比越大,表示高电平的时间越长,灯就会闪烁得更明显。一·LED0脉冲宽度调制在TIM14_CHI,先将LED(PF9)代码配置为AF推挽输出模式,将PF9引脚连接到TIM14,二·在配置TIM14定时器脉冲宽度。调动比较值1-100内,越小灯越亮。
2023-08-24 13:53:14 1189
原创 stm32之15.超声波与灯光功能一起实现(进阶)
* 初始化串口1波特率为115200bps,若发送/接收数据有乱码,请检查PLL *///官方要求,时间间隔60ms以上,防止发射信号对反射信号的干扰。printf("粤嵌\r\n");
2023-08-23 15:34:25 892
原创 stm32之14.超声波测距代码
/高速,速度越高,响应越快,但是功耗会更高。//高速,速度越高,响应越快,但是功耗会更高。//初始化串口1波特率位115200bps,若发送/接收数据有乱码,请检查PLL。//因为超声波的传输时间是发射时间+返回时间,所以需要除以/2。//只要有输出模式,肯定会有初始化电平的状态,看连接设备说明书。
2023-08-23 15:13:58 1908
原创 stm32之13.示波器波形图识别
蓝色和红色表示波形起始-停止信号,由图黄色可知是从10010101,与0xA9数据相反,所以是LSB最低位有效优先输出。
2023-08-22 21:40:24 408
原创 stm32之12.如何使用printf打印输出
/初始化串口1波特率位115200bps,若发送/接收数据有乱码,请检查PLL。//抢占优先级0~3,支持4级!主函数增加这些代码即可实现printf打印输出。//响应优先级0~3,支持4级!/* 返回发送的字符 */printf("请求");/* 发送一个字节 *//* 等待发送完毕 */
2023-08-22 21:24:47 1553
原创 stm32之11.USART串口通信
/初始化串口1波特率位115200bps,若发送/接收数据有乱码,请检查PLL。//配置USART1相关参数:波特率,数据位,停止位,校验位。
2023-08-22 21:04:32 825
原创 stm32之10.系统定时器
/ Enable SysTick timer with processor clock,启动系统定时器,其时钟源为处理器时钟168MHz。// Clear current value as well as count flag,清空当前计数值且清零count flag。// Disable SysTick,关闭系统定时器。// Disable SysTick,关闭系统定时器。delay_s()延时秒= delay_ms()毫秒*1000= delay_us()微秒*1000。
2023-08-22 15:16:02 328
原创 逻辑门-》与,或,非,异或,同或真值表
非门-->输入1,结果输出0, 输入0,结果输出1。与门-->相同输入为1结果为1,不同为0,相同输入为0结果都为0。同或门-->在异或前加个非门,异或后的结果取反。或门-->输入中有1结果为1,否则为0。异或门-->输入不同为1,相同为0。
2023-08-22 14:41:14 4278
原创 stm32之9.中断优先级配置
* 清空标志位,告诉CPU当前中断请求完毕,可以去响应新的中断请求。/* 清空标志位,告诉CPU当前中断请求完毕,可以去响应新的中断请求。/* 清空标志位,告诉CPU当前中断请求完毕,可以去响应新的中断请求。/* 清空标志位,告诉CPU当前中断请求完毕,可以去响应新的中断请求。思考题:若不清空标志位,会出现什么现象?//抢占优先级0~3,支持4级!//响应优先级0~3,支持4级!//外部中断0的中断服务函数。//外部中断2的中断服务函数。//外部中断3的中断服务函数。//外部中断4的中断服务函数。
2023-08-21 20:20:48 359
原创 stm32之8.中断
(Exceptions)异常是导致程序流更改的事件,发生这种情况,处理器将挂起当前执行的任务,并执行程序的一部分,称之为异常处理函数。中断的异常处理程序也称之为中断服务例程(ISR).每个异常源都有一个异常编号,异常编号1--15为系统异常,异常16以上为中断,Cortex-M3和Cortex-M4处理器中的NVIC(嵌套向量中断控制器)设计可支持多达240个中断输入。然而,在实践中,在设计中实现的中断输入数量要少得多,通常在16-100的范围内,通过这种方式可以减少设计的硅尺寸,这也降低了功耗。
2023-08-21 19:31:30 433
原创 stm32之7.位带操作---volatile---优化等级+按键控制
源码---key_init();Led_init();while(1){PFout(9)=0;elsePFout(9)=1;else。
2023-08-21 14:51:42 387
原创 stm32之6.位带操作
Led_init();while(1)PFout(9)=0;delay();PFout(9)=1;delay();delay();delay();delay();delay();delay();delay();
2023-08-21 11:09:15 468
原创 stm32之4.时钟体系
1.LSI(RC振荡器时钟,也就是低俗内部时钟,该RC用于独立看门狗,也可选择提供RTC用于停机/待机模式下的自动唤醒(32KHZ))。2.LSE(外部晶振时钟(石英晶体),也就是低俗外部时钟,用于驱动RTC时钟(RTCCLK)(32.768kHZ))HSI(RC振荡器时钟,也就是高速内部时钟,一般来说很少用,因为精度没有外部高速时钟那么高(16MHZ))HSE(外部晶振时钟(石英/陶瓷谐振器),也就是高速外部时钟,GEC-M4开发板为(8MHZ))主PLL时钟,也就是锁相环倍频输出。
2023-08-20 14:10:17 370
原创 stm32之3.key开关
• 推挽输出和开漏输出的应用场合也不同,推挽输出适合于需要快速切换和稳定驱动的场合,如数字信号传输、LED驱动等,而开漏输出适合于需要进行电平转换和"线与"操作的场合,如I2C、SMBus等总线通信。• 推挽输出的缺点是不能实现"线与"功能,即多个推挽输出结构的GPIO相连在一起时,如果高低电平不一致,会造成短路和器件损坏,而开漏输出的缺点是高电平时没有驱动能力,且会带来上升沿的延时。GPIO_OType_PP//推挽输出。GPIO_OType_PP//开漏输出。判断按键是否有被使用。
2023-08-20 14:09:20 409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人