单片机开发
grubly
这个作者很懒,什么都没留下…
展开
-
编写单片机IO口驱动,提示warning: #61-D: integer operation result is out of range
1 宏定义如下:#define nGPIO_MODE_HSET(m,p,n) SYS->GP##p##_MFPH =(SYS->GP##p##_MFPH & (~(1<<(4*(n-8))))); P##p##->MODE = (P##p##->MODE &(~( 3<<(n<<1))) | ( m<<(n<<1)))2 函数调用nGPIO_MODE_HSET(OUT_GPIO, ...原创 2021-09-09 11:08:49 · 1507 阅读 · 0 评论 -
2020-08-20
MDK5(KEIL5)中如何生成bin文件大家都知道MDK中默认可以生成hex文件,但是笔者最近在调试IAP在线升级程序时,需要用到bin文件来使用,那么在MDK中如何生成bin文件呢?笔者胡乱搜索一通,到是找到了有很多方法可以生成bin文件,比如说借助外部的hex2bin软件,但是笔者实验之后发现生成的bin文件还是无法使用,并且文件体积也比较大。通过比较,发现MDK内部自带有fromelf.exe工具,可以很方便的生成bin文件,并且生成的bin文件亲测可用。该工具的语法为:f...转载 2020-08-20 14:15:35 · 109 阅读 · 0 评论 -
emWin使用外部SRAM的方法
emWin使用外部SRAM的方法标签: emWinSRAM内存STM322013-07-12 16:51 3422人阅读 评论(3) 收藏 举报 分类:uCGUI及emWin版权声明:本文为博主原创文章,未经博主允许不得转载。 转载请注明地址:http://blog.csdn.net/zsy2020314/articl转载 2017-10-24 11:30:30 · 2833 阅读 · 0 评论 -
IAP与APP互相跳转的实现
IAP与APP互相跳转的实现2015-10-27 09:31 198人阅读 评论(0) 收藏 举报首先,在您动手做这个实验之前,先要弄清除咱俩的软硬件有什么不同:1. 我的CPU是STM32F103ZET6,里面有512K的FLASH,您的CPU如果是其它类型,也不要紧,只是在程序里面,地址上限可能不一样。但是,个人觉得,最好能用256K以下的FLASH。转载 2017-02-07 15:02:40 · 1929 阅读 · 0 评论 -
iap问题总结
1 周立功的串口隔离模块部支持115200的波特率,出现UART打印字符出错的问题,改成19200就可以了2 在执行跳转到应用程序的时候,没有修改向量中断表,出现APP不能运行的情况。3 调试时发现运行部分程序可以运行,文件大了就不能运行。找了好久,发现在进APP函数时没有清除相应中断,导致程序跑飞和程序大小没有关系。但是发现有些芯片的FLASH的块大小不一样,有4K,有32K不知道读写操原创 2014-12-31 10:38:33 · 1332 阅读 · 0 评论 -
SDRAM驱动
http://bbs.armfly.com/read.php?tid=1942驱动SDRAM的时序比较的麻烦一些,不像驱动SRAM,非常简单,网上搜索一下,估计有非常多的FPGA驱动SDRAM的资料,而且是各种的给你讲时序问题,现在F429/439集成了控制器以后就方便很多了,用户只需配置相应的寄存器即可,这里向大家推荐一篇文章,强烈的推荐,不懂SDRAM为何物的,一定要看看。《高转载 2015-02-02 15:34:42 · 1423 阅读 · 0 评论 -
M051驱动ST7565R控制128*64的点阵液晶
1 ST7565R软件初始化 ST7565R的初始化网上到处都是,只是需要根据自己选定的LCD屏,做相应的修改即可,这里只介绍调试时需要特别注意的几个寄存器设置bit位。特别注意有几个位的翻转设置。 LCD_WCommand(0x25); //调整内部电压V0,这个值设置不好会影响显示,由可能刷出来的都是全黑的。 L原创 2013-08-05 14:47:48 · 5388 阅读 · 0 评论 -
语音芯片软件调试问题记录
1 芯片初始化失败 使用SPI模式发送复位命令时。第一次复位不成功,发送播放语音命令不成功,而在重新上电复位一次,就可以正常播放语音。再重启又不能复位成功,总之就是奇数次不能复位成功,偶数次可以复位成功。在复位后加长时间延时也不能解决问题。而且最初在使用中青世纪的片子时,没有出现这个问题,换成华邦的芯片,同一个程序就出现了这个问题。后改成一个程序中,连续发送两次命令,能够解决原创 2013-08-05 14:23:32 · 1088 阅读 · 0 评论 -
CC430学习笔记(四)——时钟系统
上次看到论坛里有人需要CC430的时钟,这篇笔记就是了 大家都知道,单片机工作离不开时钟,在我们熟悉的51单片机里面,就是外部那个11.0592M或者12M的晶振给单片机的CPU和片上外设提供时钟节拍。430也是一样,但是430的时钟系统比51要先进和复杂很多。51的时钟源只有一个,来自外部晶振,直接提供给内部工作;而430的时钟是一个专门的模块,至少有3个可选时钟源(CC430有转载 2013-07-31 10:08:56 · 2392 阅读 · 0 评论 -
MSP430X5XX的时钟系统与低功耗模式
引言:全新改版,关于MSP430x5xx时钟系统与低功耗模式介绍。用到低功耗的时候,不得不仔细的看文档,做比较实验,真繁琐。430系列单片机中有各种时钟信号,第一次接触免不了一头雾水。而且如果想发挥430低功耗的优势,就不得不对它的时钟系统(Unified Clock System)有所了解。1. 时钟模块总览这是MSP430X5XX的时钟系统框图。乍一看很复杂,不过简化之转载 2013-07-31 10:07:11 · 2223 阅读 · 0 评论 -
const与define 优缺点比较
常量:用宏表示常数 假如我们要写一个有关圆的种种计算的程序,那么∏(3.14159)值会被濒繁用到。我们显然没有理由去改∏的值,所以应该将它当成一个常量对待,那么,我们是否就不得不一遍一遍地写3.14159这一长串的数呢?这就用到了宏。宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。宏的语法为: #define 宏名称 宏值 比如要代替前面说到的∏值,应为:#defi转载 2013-07-31 10:05:32 · 3987 阅读 · 0 评论 -
TI MSP430系列单片机串口通信波特率计算方法
TI MSP430系列单片机,usart模块的波特率值设定是通过以下三个寄存器决定的:UxBR0,UxBR1,UxMCTL 波特率=BRCLK/N ,主要是计算出N。BRCLK:时钟源,可以通过寄存器设定何为时钟源; 通过寄存器UCAxCTL1的SSEL两位选择,01:ACLK,02:SMCLKN:波特率产生的分频因子。N=UxBR1+UxBR0+UxMCTL,其中UxBR1+UxBR转载 2013-07-31 10:08:06 · 3961 阅读 · 0 评论