-
这种不规范的编码习惯要改变。
if (condition)
{
/* Do something. */
}
-
shipeng 发表于 2018-4-18 13:48
我这种写法就是这个少发一个字节的问题,貌似和我的写法没有关系。我现在有个临时方案解决了少发一个字节 ...
串口这东西简单啊,你这搞法不靠谱。。。
-
shipeng 发表于 2018-4-18 10:42
有个问题,我跟你的发送步骤不一样,你是先判断USART_FLAG_TXE再写发送数据:
void USART3_SendByte(uin ...
你不会单步看下寄存器是什么状态啊!!!
我那个都用过很多次了
-
什么乱七八槽的。。。我给你例子,自己看,你那代码懒得看{:1_104:}
void USART3_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_High_Speed;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init( GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_USART3) ;
GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART3) ;
USART_InitStructure.USART_BaudRate = 921600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART3, &USART_InitStructure);
USART_Cmd(USART3, ENABLE);
USART3_NVIC_config();
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
}
void USART3_SendByte(uint8_t ch)
{
while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET)
;
USART_SendData(USART3, ch);
}
-
CC2540自身去操作spiflash的话很容易导致蓝牙断开,TI本身就有这个bug。
像这种应用,最好外挂一个MCU去操作外挂的spiflash,不然很容易导致蓝牙断开。SPIFLASH擦除很费时间的,一个sector的擦除都要150ms具体看规格书
-
CC2540 BLE是谁都能连接上。
你只能等app连接上后,设置一个超时,如果超时时间内app没有写入你们特定的认证数据就表示不是自己的app,马上断开
-
你这个操作spiflash的流程有问题吧:Sweat:
1.要写入spiflash数据,如果不是全FF,需要先擦除后再写
2.写数据流程:
2.1:先写首页;判断首页还剩下多少bytes
2.2:写中间页
2.3:写最后页
-
最近发现论坛有人在调试PWM程序,刚好我这里有一份CC2540 PWM程序参考程序供大家参考,希望对大家有帮助~!
编译的时候记得power saving关掉,因为需要32M晶振提供时钟!
-
littleshrimp 发表于 2015-12-31 17:14
你说的是“hal_aes.c”文件吗?
现在这种加解密会有哪些问题?
看这个API的名字貌似是协议栈调用的,你如果直接使用的话,协议栈调用的时候可以与你调用的时候存在冲突。
-
littleshrimp 发表于 2015-12-31 17:17
这种对我来说太复杂了,应该属于协议栈部分吧?
如果做的话,可以修改最终实现我要的功能吗?
建议不要动协议层的东西,已经是标准的了。
你这种直接在应用层做,太好实现了。:)
-
littleshrimp 发表于 2015-12-31 17:14
你说的是“hal_aes.c”文件吗?
现在这种加解密会有哪些问题?
我使用的是hal_aes.c里面的加密,不过CCM模式是自己写的,其他模式应该都是可以直接用的。
HCI层的加解密函数目前没有用,不过不建议使用。
-
littleshrimp 发表于 2015-12-31 17:10
在deyisupport也提问了,那边给的答案。
你可以看下BT core里面关于配对的流程,里面交换pin码是在什么时候。
-
littleshrimp 发表于 2015-12-9 10:23
自己解答
建议不要使用这个文件里面的加解密API。
试试AES.C里面的。
-
littleshrimp 发表于 2015-12-9 10:24
不可以,因为密码不会在数据中传输,感觉应该是模块用密码加密一组数据发给手机,手里用输入的密码解密数据 ...
楼主这是自问自答啊。
建议这种协议直接在应用层做,你可以随意设计- -。BT配对的时候去掉弹框。
-
最快的方法是对换好的和坏的CC2541,看结果如何,可迅速排出是芯片还是板子问题
-
加速度传感器的数据,加滤波就好很多了。
IR温度数据,没试过低温的,我那时候测是常温,温差不大。
-
不知道这个带iBeacon的FW是不是支持主模式?
如果仅仅是从模式支持iBeacon,那这个FW就没什么意义了。
去TI官网看了,说是要apple的iBeacom的认证才能下,坑爹啊~!!
-
能申请开发板不?
-
卡西欧手表,资料正确。
谢谢TI,eeworld,及phantom7:congratulate:
-
sanwzy 发表于 2014-6-9 14:37
楼主, 能不能简介的介绍一下切换过程呢
其实这个切换很简单的,就是在OSAL的task中增加角色的初始化的task,然后通过初始化角色去切换。
好像不能完美的切换,有时候会有切换出错的情况出现。