-
void Beep_Init(void)
{//BEEP初始化代码
uint8_t temp;
CFG->GCR = CFG_GCR_SWD;//由于BEEP未启动,尝试关闭调试接口,结果还是不行
BEEP_DeInit();
GPIO_Init(BEEP_PORT, BEEP_PIN, GPIO_Mode_Out_PP_Low_Slow);
CLK_BEEPClockConfig(CLK_BEEPCLKSource_LSI); //内部低速时钟在另外的地方开启了
// BEEP_LSClockToTIMConnectCmd(ENABLE);
BEEP_LSICalibrationConfig(37000);
BEEP_Init(BEEP_Frequency_1KHz);
BEEP_Cmd(ENABLE);
temp = BEEP->CSR2;
printf("\r\nThe BEEP SCR2 val is:%x",temp);
}
-
定时器是自动重装的,应该很准!与计数值溢出有关系,加上即可。
-
芯片设计理念问题,SPI的发送空中断,和其他理念不太一样,一般来说,DR冲有到无产生一个中断,而STM的是只要空就是1,产生中断,我也是研究了半天才弄明白??
void SPI_InterruptISR(void)
{
//u8 temp;
P_SPIfdstr fd=&exspifd;
if (SPI->SR & SPI_FLAG_RXNE) {
if (!fd->full) {
fd->Rxbuff[fd->front++] = (u8)SPI->DR;
fd->front %= MAXSPIRXDBUFFSIZE;
if (fd->front == fd->rear)
fd->full = 1;
}
}
if (SPI->SR & SPI_FLAG_TXE) {
if (fd->full || (fd->write != fd->read)) {
SPI->DR = fd->Txbuff[fd->read++];
fd->read %= MAXSPITXDBUFFSIZE;
fd->full = 0;
} else {
SPI_ITConfig(SPI_IT_TXE, DISABLE);//缓冲区数据发送完成后,关闭中断,再次发送时打开
}
}
}
void spi_send_buf(u8 *buf, u8 len)
{
u8 i=0;
P_SPIfdstr fd=&exspifd;
for (i=0; i<len; i++) {
fd->Txbuff[fd->write++] = *buf++;
fd->write %= MAXSPITXDBUFFSIZE;
}
//SPI->DR = fd->Txbuff[fd->read];
SPI_ITConfig(SPI_IT_TXE, ENABLE);
}
-
帮你顶
用串口,别用usb 转串口的,看看
-
不知道什么东东,纯顶
-
找老师要那厂家的电话
打电话给他:
说两个轮到你试用他们的板子,学校(院)让你评估他们的东西,有可能会进行下一批量的采购。但是现在原来的程序找不到了,希望他们能尽快发一份过来。以便你的工作能顺利开展,谢谢!
-
带通滤波可以考虑。
-
可以考虑自己封装控件,实现位图按钮。MSDN上好像有c#编写位图按钮控件的例子,lz有兴趣可以参考下。
-
太复杂了了,对于我这个菜鸟来说
-
祝福大家,希望明年都能有些惊喜的转变
-
在调捕获的时候,始终无法很好的解决定时器溢出的问题,特别是溢出很多次,不知版主是否有好的方法
-
温度传感器DS18b20 湿度SHT10 控制芯片看你喜欢了
反正就是温度低于正常范围就开加热器,低了就开加湿器.
加热器随便就是了,加湿器看看能不能在水缸里放个小的超声波发生器.
具体看你们自己的要求了.
-
编译的时候使用Release模式可以去掉assert_param 。
-
哈!知道问题所在了!原来
extern "c" MYCEDL_20100108_API void TestDll(void)中的c要大写啊!!!!!
真晕......
-
问题解决了,是因为调用这个头文件的c文件里有错误的地方,虽然改后出现了好多“warning”但是毕竟是没有“error”了,谢谢楼上各位大侠了。O(∩_∩)O
-
5.0不支持
-
没用虚拟光驱吧,用虚拟光驱安装就好了。
-
如果你MCU有ISP功能是很容易实现的。我在SM5964,MSP430FXXX等一些MCU上实现过。
但是如果是ROM类型,程序又要在RAM运行,那估计就没戏了。
-
显示BMP要用BMP搞什么。
用BitBlt。
-
o!!!!!!!!!