问题描述:
工程整个函数每隔5ms刷新一次,但是一家入flash操作串口发送就有问题了,接收不到串口发送出来的数据,然后整个函数拖慢了很多。
原因分析:
主函数每5ms去擦除、读写flash导致,flash操作需要时间,实测20ms操作一次就不会再有问题。
解决方案:
提示:这里填写该问题的具体解决方案:
例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 mHandler.sendMessage()。
if(cnt_flash > SYSTEM_MILLISECONDS(20))
{
cnt_flash = 0;
result = Flash_Prepared();
if(result)
{
result = Flash_Write();
}
memset();
Flash_Read();
}
上一篇:【STM32】串口唤醒低功耗
下一篇:HAL库的官方历程
推荐阅读
史海拾趣
always @(posedge clk )begin if(!reset) out<=0; else if(cnt1==6) out<=1; else if(cnt2==6) out<=1; end 请问下,我在always的条件中没写 or negedge reset 这个信号, 当reset为低电平时out会清零不?… 查看全部问答∨ |
关于VirtualStart的问题,差不多看了论坛上关于虚地址的帖子,可是调试过程中,灯仍然不工作,郁闷,帮我看下吧,谢谢 oalAddressTable如下: ALIGN g_oalAddressTable DCD 0x ...… 查看全部问答∨ |
用的是sqlite数据库。现在有一个语句,想插入记录 result = sqlite3_exec( db, "insert into List(NUMBER) values (此处为变量名)", 0, 0, &zErrMsg); 变量为m_no 请问 括号内应该如何写?我编译的时候总是有错误,请大家指点下 ...… 查看全部问答∨ |
最近一个项目要搞linux驱动,但是以前没有搞过 所以有个问题研究了很久,还是没有搞清楚,想请教一下:: 平时驱动开发直接用insmod插入模块即可 但是在嵌入式环境下,开机就要启动驱动,但是代码里面仍然是做成模块化的,所以我现在搞不清楚该 ...… 查看全部问答∨ |
Linux下开发单片机可以使用SDCC,里面也自带了模拟器,STC官方只提供了Windows下的下载工具,这里提供一个在Linux环境下通过串口烧写STC89C52的软件,希望能对在Linux下开发单片机系统有点帮助: http://forum.ubuntu.org.cn/viewtopic.php?f=97 ...… 查看全部问答∨ |
|
在异步复位中,典型的复位形式如下面代码所示:always @ (posedge clk or negedge rst) begin .... end在这种复位模式下,一般而言是要加入一个synchronizer,代码如下所示:reg syn_rst, rff1;always @ (posedge CLK or ...… 查看全部问答∨ |
|
用STM32是否能实现:输出一组频率占空比50%,100~150KHZ 大家好,用STM32是否能实现:输出一组频率占空比50%,100~150KHZ,可调步进精确到1Hz,就是最小可以1HZ的变化.… 查看全部问答∨ |