关于风火轮

  • SM16126使用:

多片级联,时钟线相同,LE相同,OE统一接地,SDO逐级连接SDI,R接电阻;

可以用SPI协议,通过配置CPOL和CPHA使主机在时钟上升沿输出数据电平,让SM16126读取,实现通讯。传输时以字节为单位,先送MSB。

传送数据时直接连续传输,位流遵循先进先出规则,各级芯片会自动取下最慢到达的两个字节并锁存,超出部分会被丢弃。比如单片时,CPU传输0x80,0x00,则out15有效;传输0x01,0x00,则out8有效。又比如3片级联时,设与CPU直接相连的片编号为1,次片为2、3,传输unsigned char data[10], 则最先传输的data[0~3]会被丢弃,data[4~9]会按顺序被321取走。每个字节的MSB作用于out15或out7,以此类推。

output引脚是否输出锁存的内容,取决于LE与OE的电平。

注意,必须配置好相关IO口的工作模式,否则可能导致电平错误。

  • 连接RGBled时支持颜色:

红色,蓝色,绿色,白色,黄绿色,粉红色,浅蓝色

 

  • IAR下CC2541内存为小端模式

创建一个16位变量,debug,查看汇编语言可以发现CC2541在IAR环境下为小端模式,或者用类型转换,调试查看变量,得到同样结论。

  •  IAR中的__code关键字

const u8 __code primary[6656],__code双下划线,必须用const修饰,该变量将被定义到CC2541的flash中。

CC2541没有ROM(?)

扫描二维码关注公众号,回复: 4218166 查看本文章
  • IAR8051v10.10破解方法:

同IAR for ARM的方法,用IAR注册机,选择好软件类别(IAR for 8051)即可

  • IAR8051v10.10新建CC2541工程:

新建工程后,需保存workspace(ewp文件),也可以设定好其他内容后rebuild all时再保存;通常与main.c 同目录。

芯片型号在general options-target-device里选定;各种生成的中间文件的输出路径在general options-output里选定;需在project-options-C/C++  compiler-processor里添加各个文件路径。

工程的相关设置文件似乎自动保存在main.c同目录下的setting文件夹中。(?)

  • IAR调试下载到CC2541:

使用CC DEBUGGER只做调试下载时,通讯只需要五个pin,GND,VCC,DD,DC,RESET,但是要注意把pin2也就是target voltage sense也连接上vcc。使用CC DEBUGGER做协议分析时必须全部连接。

仿真时,project-options-debugger要设置driver为Texas instrument,才能从仿真器返回CPU内部的各项数据,包括代码中需要判断的位等,防止卡死,例如中断标志。

生成HEX文件并用flashprogrammer烧录:project->options->linker->output,勾中Output file下的override default选项,输出文件后辍改为.hex,并将下方的format选为other,生成的文件即可烧录。注意,other选项下进入debug模式时,编译器会提示stack warning,并且代码调试时无法设置断点;如果想要在调试代码时设置断点,需要将format改为debug information for C-SPY,此时可以设置断点,但工程rebuild生成的hex文件不能用flashprogrammer烧录。

  • IAR go to definition不可用:

选择Tools->Options->Project,勾选Generatebrowse information,重新打开工程则Go to definition of恢复可用。

  • SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition:

依次打开Project -> Options -> General Option -> Target,在Target标签中找到“Number of virtual”,原来默认为16,修改为8

 

猜你喜欢

转载自blog.csdn.net/WangJianlin3/article/details/83063889
今日推荐