摘要:
可爱的Python网站https://wiki.woodpecker.org.cn/moin/ObpLovelyPython,该网站还有练习答案https://wiki.woodpecker.org.cn/moin/ObpLovelyPython/LpyAttAnswerCdays,可是,或许是因为 阅读全文
摘要:
当设计中存在多个时钟域,信号从一个时钟域传入另一个时钟域时,即存在Clock Domain Crossing(CDC),需要小心处理,防止出现亚稳态 按时钟快慢来划分,跨时钟域问题可以分成从慢时钟域到快时钟域以及从快时钟域到慢时钟域两种场景;按信号位宽来划分,可以分为单比特跨时钟域问题与多比特跨时钟 阅读全文
摘要:
调试情况1 现象:主I2C发送数据而没有收到应答,则下一次不能正常发送数据 背景:主I2C每次应该都能正常发送数据 硬件:野火STM32-MINI,1主0从,SCL和SDA直接上拉 软件:按键触发中断,主I2C发送一次数据,中断优先级,按键最低,I2C最高,且主I2C中有TIMEOUT计时 优先级分 阅读全文
摘要:
这个小项目读取一张bmp格式的图像文件,做灰度化,二值化或者色彩调整并输出 工程为验证性仿真工程,无需上板,含有不可综合代码,也不能上板 首先,需要借助MATLAB将bmp格式图像文件转化为hex格式 Verilog代码部分包含一个图像读取模块,该模块有图像处理的部分,和一个图像写模块,还有一个参数 阅读全文
摘要:
aaSTM32开发板的默认配置都是使用的外部8MHz的晶振,系统时钟为72MHz,而当使用12MHz的外部晶振,如不从新配置时钟,按默认配置则软件会认为自己的系统时钟为72MHz,而实际的系统时钟为108MHz 程序运行时首先从startup中进入Reset_Handler,它会调用SystemIn 阅读全文
摘要:
在实际应用中,会碰到上位机往单片机发送数据的情况,这时候需要配置单片机为从设备,准备接受数据 使用硬件I2C时,开启事件和缓存中断 然后在中断服务函数中接受数据 这段代码十分简单,处理EV1, EV2和EV4即可 逻辑分析仪截图如下 这次实验是这系列STM32 I2C实验的目的,因为工作项目需要我去 阅读全文
摘要:
上一篇博客是使用I2C读写EERPOM的初级版本,这次在上次的基础上添加中断,使用DMA传输控制,新添加两个读写函数 采用中断方式和DMA可以充分利用单片机强大的硬件外设,提高整体运行效率,而且,在编程上也更为便捷 新的页写函数如下 代码中注释掉的部分是原来的设计,在它下面是新的设计,首先配置好DM 阅读全文
摘要:
本工程运行于野火MINI开发板,主控型号为STM32F103RC,读写对象为AT24C02 2Kbit容量的EEPROM STM32的硬核I2C十分复杂,而且网上有说有缺陷,这就有意思了,值得一探究竟 I2C通信中各设备有主从之分,那么此处先从简单的主模式下手,做一个简单的读写EEPROM实验 从A 阅读全文
摘要:
实验阶段1,定时器计时1s触发中断,在中断中往外发送数据 定时器设定为36000分频,周期设定为2000,并开启中断,配置代码如下 串口配置与PC端调试助手设置一致即可,一般都配置为无硬件流控,无奇偶校验,1位停止位,八位数据位 中断服务函数中还是常规的检测中断标志位然后清除中断标志位 串口发送函数 阅读全文
摘要:
这次实验实现一个呼吸灯的效果,LED在第一秒内渐亮,在第二秒内渐暗,如此反复 控制LED的PWM波形阶梯数为100,即2秒内PWM的占空比从0%到100%范围内先递增后递减且递增/递减的幅度为1% 在设计STM32时,将定时器时钟7200分频后得到的10K时钟作为计数器时钟,并且设置周期为100,这 阅读全文